First time I thought it was maybe a good Idea to backup this project
This commit is contained in:
144
TestSelenium/Form1.cs
Normal file
144
TestSelenium/Form1.cs
Normal file
@@ -0,0 +1,144 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using System.Threading;
|
||||
|
||||
using OpenQA.Selenium;
|
||||
using OpenQA.Selenium.Firefox;
|
||||
using OpenQA.Selenium.Remote;
|
||||
using System.Net.Http;
|
||||
using System.Data.SQLite;
|
||||
|
||||
namespace TestSelenium
|
||||
{
|
||||
public partial class Form1 : Form
|
||||
{
|
||||
public Form1()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void btnStart_Click(object sender, EventArgs e)
|
||||
{
|
||||
FirefoxOptions options = new FirefoxOptions();
|
||||
options.AddArgument("--disable-headless");
|
||||
//options.AddArgument("headless");
|
||||
//options.AddArgument("--silent-launch");
|
||||
//options.AddArgument("--no-startup-window");
|
||||
//FirefoxOptions options = ffopt.SetHeadless(true);
|
||||
|
||||
//options.AddArgument("--headless");
|
||||
options.AddArgument("--window-size=1920,1080");
|
||||
options.AddArgument("--disable-web-security");
|
||||
options.AddArgument("--same-site-none-secure");
|
||||
options.AcceptInsecureCertificates = true;
|
||||
var driver = new FirefoxDriver(options);
|
||||
|
||||
var loginCookie = new Cookie("login", "%7B%22event%22:%22login%22,%22componentId%22:%22component_login_page%22,%22actionType%22:%22success%22%7D", ".formula1.com", "/", DateTime.Now.AddDays(5));
|
||||
var loginSessionCookie = new Cookie("login-session", "%7B%22data%22%3A%7B%22subscriptionToken%22%3A%22eyJraWQiOiIxIiwidHlwIjoiSldUIiwiYWxnIjoiUlMyNTYifQ.eyJFeHRlcm5hbEF1dGhvcml6YXRpb25zQ29udGV4dERhdGEiOiJDSEUiLCJTdWJzY3JpcHRpb25TdGF0dXMiOiJhY3RpdmUiLCJTdWJzY3JpYmVySWQiOiIxNzQ5NzM4ODgiLCJGaXJzdE5hbWUiOiJSb2htZXIiLCJMYXN0TmFtZSI6Ik1heGltZSIsImV4cCI6MTY3Njg4MTkzMSwiU2Vzc2lvbklkIjoiZXlKaGJHY2lPaUpvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBeEx6QTBMM2h0YkdSemFXY3RiVzl5WlNOb2JXRmpMWE5vWVRJMU5pSXNJblI1Y0NJNklrcFhWQ0lzSW1OMGVTSTZJa3BYVkNKOS5leUppZFNJNklqRXdNREV4SWl3aWMya2lPaUkyTUdFNVlXUTROQzFsT1ROa0xUUTRNR1l0T0RCa05pMWhaak0zTkRrMFpqSmxNaklpTENKb2RIUndPaTh2YzJOb1pXMWhjeTU0Yld4emIyRndMbTl5Wnk5M2N5OHlNREExTHpBMUwybGtaVzUwYVhSNUwyTnNZV2x0Y3k5dVlXMWxhV1JsYm5ScFptbGxjaUk2SWpFM05EazNNemc0T0NJc0ltbGtJam9pTUdabFpEZ3haamN0TnpOaFpDMDBOMk0yTFdFNE5ESXRNalJsTWpSaE9HTTBPR1ppSWl3aWRDSTZJakVpTENKc0lqb2labkl0UmxJaUxDSmtZeUk2SWpNMk5EUWlMQ0poWldRaU9pSXlNREl6TFRBekxUQXlWREE0T2pNeU9qRXhMakV6TkZvaUxDSmtkQ0k2SWpFaUxDSmxaQ0k2SWpJd01qTXRNRE10TVRoVU1EZzZNekk2TVRFdU1UTTBXaUlzSW1ObFpDSTZJakl3TWpNdE1ESXRNVGRVTURnNk16STZNVEV1TVRNMFdpSXNJbWx3SWpvaU1UWXdMalV6TGpJME55NHlNalVpTENKaklqb2lSMFZPUlZaRklpd2ljM1FpT2lKSFJTSXNJbkJqSWpvaU1USXdNQ0lzSW1Odklqb2lRMGhGSWl3aWJtSm1Jam94TmpjMk5UTTJNek14TENKbGVIQWlPakUyTnpreE1qZ3pNekVzSW1semN5STZJbUZ6WTJWdVpHOXVMblIySWl3aVlYVmtJam9pWVhOalpXNWtiMjR1ZEhZaWZRLlVvSEF4SElaZVVYWVRISkc2WkdiTTdwZDZZd3hOQ1dTdGtMMWVPS0wyODQiLCJpYXQiOjE2NzY1MzYzMzEsIlN1YnNjcmliZWRQcm9kdWN0IjoiRjEgVFYgUHJvIEFubnVhbCIsImp0aSI6IjA1MGFlOTkyLWI4ZWUtNDlhZS1hNWJjLWM5OTQ1ZTg1ZTc3MSJ9.qIXqlo4y24PqLhb74SMSy-ydtsx3GOmIpVtVfQ_ZRgdkl4cASGdjZ38qal2EuLTRl7gDS1l4dRqAGuiAmrRiItzKDWSj4ZZZS3Cr9XM5BwhKIxgUzlL51j6k1YCU3mlqC3sz1uggV7SyPvttBFUukbAHVtI1PtT3ddRPsu16Dowl8JbKkKDj6Dfluv2IegzmTlf6NlhjOlPMSlfbnT5Kuza81mbmIS1UjOQRMVP2eP1IbwEJAsCq8sE_yCeXxbCP3u7W80YnXeiHVYrElo8EExv7aql9ig_ofE4Uf4U38h2ZIGNvIec5S99oEsb8W-713bamWzPsCtKxHSGi-wox4w%22%7D%7D", ".formula1.com", "/", DateTime.Now.AddDays(5));
|
||||
|
||||
//var loginCookie = new Cookie("login", GetCookie(".formula1.com","login"),"/", DateTime.Now.AddDays(5));
|
||||
//var loginSessionCookie = new Cookie("login-session", GetCookie(".formula1.com", "login-session"), "/", DateTime.Now.AddDays(5));
|
||||
|
||||
//driver.Navigate().GoToUrl("https://www.google.com/");
|
||||
|
||||
driver.Navigate().GoToUrl("https://f1tv.formula1.com/");
|
||||
|
||||
driver.Manage().Cookies.AddCookie(loginCookie);
|
||||
driver.Manage().Cookies.AddCookie(loginSessionCookie);
|
||||
|
||||
driver.Navigate().GoToUrl("https://f1tv.formula1.com/detail/1000005104/2022-bahrain-grand-prix?action=play");
|
||||
|
||||
driver.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(30);
|
||||
|
||||
IWebElement conscentButton = driver.FindElement(By.Id("truste-consent-button"));
|
||||
conscentButton.Click();
|
||||
|
||||
driver.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(30);
|
||||
|
||||
Thread.Sleep(5000);
|
||||
|
||||
//IWebElement dataChannelButton = driver.FindElement(By.ClassName("btn btn-link d-flex align-items-center data-button"));
|
||||
IWebElement dataChannelButton = driver.FindElement(By.ClassName("data-button"));
|
||||
dataChannelButton.Click();
|
||||
|
||||
IWebElement fullScreenButton = driver.FindElement(By.ClassName("bmpui-ui-fullscreentogglebutton"));
|
||||
fullScreenButton.Click();
|
||||
//MessageBox.Show("Clicked");
|
||||
|
||||
Thread.Sleep(5000);
|
||||
int counter = 0;
|
||||
while (true)
|
||||
{
|
||||
string filename = "C:\\Users\\Moi\\Pictures\\SeleniumScreens\\screen_" + counter + ".png";
|
||||
((ITakesScreenshot)driver).GetScreenshot().SaveAsFile(filename,ScreenshotImageFormat.Png);
|
||||
SendScreenshotToBroker(filename);
|
||||
counter++;
|
||||
Thread.Sleep(1000);
|
||||
}
|
||||
|
||||
//1095 750
|
||||
|
||||
}
|
||||
private async void SendScreenshotToBroker(string filename)
|
||||
{
|
||||
var client = new HttpClient();
|
||||
|
||||
var message = new HttpRequestMessage
|
||||
{
|
||||
Method = HttpMethod.Post,
|
||||
RequestUri = new Uri("http://localhost:8888/"),
|
||||
Content = new StringContent("[ScreenPath] "+filename, Encoding.UTF8, "text/plain")
|
||||
};
|
||||
var response = await client.SendAsync(message);
|
||||
var content = await response.Content.ReadAsStringAsync();
|
||||
MessageBox.Show(content);
|
||||
}
|
||||
private string GetCookie(string hostname, string cookieName)
|
||||
{
|
||||
// The path to the Chrome cookies database file
|
||||
string cookiesDbPath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) +
|
||||
@"\Google\Chrome\User Data\Default\Network\Cookies";
|
||||
|
||||
// Connect to the Chrome cookies database
|
||||
using (SQLiteConnection connection = new SQLiteConnection($"Data Source={cookiesDbPath}"))
|
||||
{
|
||||
connection.Open();
|
||||
string CookieValue = "";
|
||||
|
||||
// Execute a SELECT query to retrieve the cookies
|
||||
using (SQLiteCommand command = new SQLiteCommand("SELECT host_key, name, encrypted_value FROM cookies", connection))
|
||||
{
|
||||
using (SQLiteDataReader reader = command.ExecuteReader())
|
||||
{
|
||||
while (reader.Read())
|
||||
{
|
||||
string host = reader["host_key"].ToString();
|
||||
string name = reader["name"].ToString();
|
||||
var value = reader["encrypted_value"];
|
||||
if (host == hostname && name == cookieName)
|
||||
{
|
||||
CookieValue = Encoding.ASCII.GetString((byte[])reader.GetValue(2));
|
||||
break;
|
||||
/*
|
||||
Console.WriteLine($"Host: {host}");
|
||||
Console.WriteLine($"Name: {name}");
|
||||
Console.WriteLine($"Value: {value}");
|
||||
Console.WriteLine();
|
||||
*/
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
return CookieValue;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user