/// <summary> /// The entry point of program. Sends message from mail, sends from rambler and changes name of mail profile. /// </summary> /// <param name="args"></param> static void Main(string[] args) { IWebDriver webDriver = new OpenQA.Selenium.Chrome.ChromeDriver(); LoginMailPage loginMailPage = new LoginMailPage(webDriver); loginMailPage.GoToPage(); var mainMailPage = loginMailPage.LoginToMail("*****@*****.**", "2_password_2"); var writerLetterMailPage = mainMailPage.ClickToWriteLetter(); writerLetterMailPage.SendLetter("*****@*****.**", "I ready to change my name!!"); webDriver.Quit(); webDriver = new OpenQA.Selenium.Chrome.ChromeDriver(); LoginRamblerPage loginRamblerPage = new LoginRamblerPage(webDriver); loginRamblerPage.GoToLoginPage(); var mainRamblerPage = loginRamblerPage.LoginIntoRambler("*****@*****.**", "1_Password_1"); var ramblerLetterPage = mainRamblerPage.SelectUnreadLetter("*****@*****.**"); ramblerLetterPage.ReplyOnLetter("Hallou"); webDriver.Quit(); webDriver = new OpenQA.Selenium.Chrome.ChromeDriver(); loginMailPage = new LoginMailPage(webDriver); loginMailPage.GoToPage(); mainMailPage = loginMailPage.LoginToMail("*****@*****.**", "2_password_2"); var mailLetterPage = mainMailPage.SelectUnseenLetter("*****@*****.**"); string newUserName = mailLetterPage.GetNameFromLetter(); var settingsPage = mailLetterPage.GoToSetting(); settingsPage.ChangeUserName(newUserName); }
public override void RunCommand(object sender) { var engine = (Core.Automation.Engine.AutomationEngineInstance)sender; var driverPath = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Windows.Forms.Application.ExecutablePath), "Resources"); OpenQA.Selenium.Chrome.ChromeDriverService driverService = OpenQA.Selenium.Chrome.ChromeDriverService.CreateDefaultService(driverPath); var newSeleniumSession = new OpenQA.Selenium.Chrome.ChromeDriver(driverService, new OpenQA.Selenium.Chrome.ChromeOptions()); var instanceName = v_InstanceName.ConvertToUserVariable(sender); engine.AddAppInstance(instanceName, newSeleniumSession); //handle app instance tracking if (v_InstanceTracking == "Keep Instance Alive") { GlobalAppInstances.AddInstance(instanceName, newSeleniumSession); } //handle window type on startup - https://github.com/saucepleez/taskt/issues/22 switch (v_BrowserWindowOption) { case "Maximize": newSeleniumSession.Manage().Window.Maximize(); break; case "Normal": case "": default: break; } }
private IWebDriver OpenBrowser(string BrowserType, string Headless = "") { if (BrowserType.ToLower() == "chrome") { OpenQA.Selenium.Chrome.ChromeOptions options = new OpenQA.Selenium.Chrome.ChromeOptions(); options.AddArgument("--start-maximized"); options.AddArgument("--ignore-certificate-errors"); options.AddArgument("--disable-popup-blocking"); options.AddArgument("--safebrowsing-disable-download-protection"); options.AddArgument("--incognito"); if (Headless.ToLower() == "yes" || Headless == "") { options.AddArgument("--headless"); } options.AddUserProfilePreference("download.prompt_for_download", false); options.AddUserProfilePreference("disable-popup-blocking", true); options.AddUserProfilePreference("safebrowsing", "enabled"); IWebDriver driv = new OpenQA.Selenium.Chrome.ChromeDriver(options); return(driv); } else { return(new OpenQA.Selenium.Firefox.FirefoxDriver()); } }
public static void Init(TestContext x) { OpenQA.Selenium.Firefox.FirefoxDriver fd = new OpenQA.Selenium.Firefox.FirefoxDriver(); Browsers.Add(fd); OpenQA.Selenium.Chrome.ChromeDriver cd = new OpenQA.Selenium.Chrome.ChromeDriver(); Browsers.Add(cd); }
static string GrabErrorLog(string errorLogUrl, string errorDetailBase) { IWebDriver driver = null; try { driver = new OpenQA.Selenium.Chrome.ChromeDriver(); driver.Navigate().GoToUrl(errorLogUrl); Thread.Sleep(30); var element = driver.FindElement(By.XPath("//option[@value='/elab']")); element.Click(); element.Submit(); Thread.Sleep(30); var table = driver.FindElement(By.Id("dgdResults")); var result = ((IJavaScriptExecutor)driver).ExecuteScript("return arguments[0].innerHTML;", table).ToString(); result = result.Replace("ErrorLogEventDetail.aspx", errorDetailBase); result = System.Text.RegularExpressions.Regex.Replace(result, @"javascript:__doPostBack[^>""]*", ""); return "<table>" + result + "</table>"; } catch { throw; } finally { if (driver != null) driver.Quit(); } }
private object FindElement(OpenQA.Selenium.Chrome.ChromeDriver seleniumInstance, string searchParameter) { object element = null; switch (v_SeleniumSearchType) { case "Find Element By XPath": element = seleniumInstance.FindElementByXPath(searchParameter); break; case "Find Element By ID": element = seleniumInstance.FindElementById(searchParameter); break; case "Find Element By Name": element = seleniumInstance.FindElementByName(searchParameter); break; case "Find Element By Tag Name": element = seleniumInstance.FindElementByTagName(searchParameter); break; case "Find Element By Class Name": element = seleniumInstance.FindElementByClassName(searchParameter); break; case "Find Element By CSS Selector": element = seleniumInstance.FindElementByCssSelector(searchParameter); break; case "Find Elements By XPath": element = seleniumInstance.FindElementsByXPath(searchParameter).ToList(); break; case "Find Elements By ID": element = seleniumInstance.FindElementsById(searchParameter).ToList(); break; case "Find Elements By Name": element = seleniumInstance.FindElementsByName(searchParameter).ToList(); break; case "Find Elements By Tag Name": element = seleniumInstance.FindElementsByTagName(searchParameter).ToList(); break; case "Find Elements By Class Name": element = seleniumInstance.FindElementsByClassName(searchParameter).ToList(); break; case "Find Elements By CSS Selector": element = seleniumInstance.FindElementsByCssSelector(searchParameter).ToList(); break; default: throw new Exception("Search Type was not found"); } return(element); }
internal static IWebDriver LaunchBrowser(Type browser) { switch (browser) { case Type.CHROME: Driver = new OpenQA.Selenium.Chrome.ChromeDriver(); break; case Type.FIREFOX: Driver = new OpenQA.Selenium.Firefox.FirefoxDriver(); break; case Type.IE: Driver = new OpenQA.Selenium.IE.InternetExplorerDriver(); break; case Type.SAFARI: Driver = new OpenQA.Selenium.Safari.SafariDriver(); break; default: throw new ApplicationException("No appropriate browser driver was provided."); } return(Driver); }
public IWebDriver OpenBrowser(string PathToDrivers) { if (GetBrowserType() == BrowserType.Chrome) { OpenQA.Selenium.Chrome.ChromeOptions options = new OpenQA.Selenium.Chrome.ChromeOptions(); options.AddArgument("--start-maximized"); options.AddArgument("--ignore-certificate-errors"); options.AddArgument("--disable-popup-blocking"); options.AddArgument("--safebrowsing-disable-download-protection"); options.AddArgument("--incognito"); if (headless.ToLower() == "yes") { options.AddArgument("--headless"); } options.AddUserProfilePreference("download.prompt_for_download", false); options.AddUserProfilePreference("disable-popup-blocking", true); //options.AddUserProfilePreference("safebrowsing.enabled", true); options.AddUserProfilePreference("safebrowsing", "enabled"); driv = new OpenQA.Selenium.Chrome.ChromeDriver(PathToDrivers, options); } return(driv); }
public void TestNewCode(string UrlPath) { using (var driver = new OpenQA.Selenium.Chrome.ChromeDriver()) { UrlPath = "https://privatepath.co.uk/browse/" + UrlPath; driver.Navigate().GoToUrl(UrlPath); System.Threading.Thread.Sleep(15000); IWebElement PageButton = driver.FindElementById("opsbar-opsbar-transitions"); var myButton = PageButton.FindElement(By.Id("action_id_91")); myButton.Click(); IWebElement PageButton2 = driver.FindElementByClassName("buttons"); var myButton2 = PageButton2.FindElement(By.ClassName("aui-button")); myButton2.Click(); IWebElement PageElements = driver.FindElement(By.ClassName("item-attachments")); var myAttach = PageElements.FindElements(By.TagName("li")); foreach (var item in myAttach) { Console.WriteLine(item.Text); Console.WriteLine(item.GetAttribute("data-downloadurl").ToString()); if (item.GetAttribute("data-downloadurl").ToString().StartsWith("application/zip:")) { item.Click(); System.Threading.Thread.Sleep(1000); Console.WriteLine("Downloading File..."); } } } }
public void StartGeeTest(Uri uri) { const int waitTime = 500; var options = new OpenQA.Selenium.Chrome.ChromeOptions(); //options.AddArgument("-headless");//不显示界面 options.AddArgument("--window-size=1920,1050"); options.AddArgument("log-level=3"); using OpenQA.Selenium.Chrome.ChromeDriver driver = new OpenQA.Selenium.Chrome.ChromeDriver(options); driver.Navigate().GoToUrl(uri); //反爬验证webdriver driver.ExecuteJavaScript("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"); driver.Navigate().GoToUrl(uri); Thread.Sleep(waitTime);//等待js执行 driver.ExecuteScript("header.loginLink(event)"); Console.WriteLine("点击《登录/注册》按钮"); Thread.Sleep(waitTime); driver.ExecuteScript("loginObj.changeCurrent(1);"); Console.WriteLine("点击 《密码登录》按钮"); Thread.Sleep(waitTime); driver.ExecuteScript("$('.contactphone').val('17712345678')"); driver.ExecuteScript("$('.contactword').val('2020')"); Console.WriteLine("输入账号密码"); Thread.Sleep(waitTime); driver.ExecuteScript("loginObj.loginByPhone(event);"); Console.WriteLine("点击《登录》按钮"); Thread.Sleep(waitTime); SeleniumVertifyCode slideVerificationCode = new SeleniumVertifyCode(); var flag = slideVerificationCode.Pass(driver); Console.WriteLine($"验证结果{flag}"); }
static void Main(string[] args) { using (var driver = new OpenQA.Selenium.Chrome.ChromeDriver()) { new IMDB.IMDB(driver).SearchByActorName("Russell Crowe").SaveMoviesDetails(); } }
private void BtnAra_Click(object sender, EventArgs e) { try { if (!string.IsNullOrWhiteSpace(txtAranacakKelime.Text)) { driver = new OpenQA.Selenium.Chrome.ChromeDriver(); driver.Navigate().GoToUrl("https://www.google.com/search?q=" + txtAranacakKelime.Text); //Sonuçları döndür int toplam = driver.FindElements(By.TagName("cite")).Count; for (int i = 0; i < toplam; i++) { ReadOnlyCollection <IWebElement> Liste = driver.FindElements(By.XPath("//*[@id='rso']/div/div/div[" + i + "]/div/div/div[1]/a[1]")); foreach (IWebElement result in Liste) { string link = result.GetAttribute("href"); lstSonuclar.Items.Add(link); } } } else { MessageBox.Show("Lütfen aranacak bir kelime giriniz", "Uyarı", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
static void Main(string[] args) { //Launch Application IWebDriver driver = new OpenQA.Selenium.Chrome.ChromeDriver(); driver.Navigate().GoToUrl("http://www.way2automation.com/angularjs-protractor/webtables/"); Thread.Sleep(2000); // Add user on the table driver.FindElement(By.XPath("/html/body/table/thead/tr[2]/td/button")).Click(); Thread.Sleep(2000); //Read Data from Excel sheet string xlFilePath = "C:/Users/Moditime/Desktop/koena/Automation/DataFile.xlsx"; ExcelAPI obj = new ExcelAPI(xlFilePath); var cellValue = obj.GetCellData("Sheet1", "FirstName", 1); Console.WriteLine("Cell Value using Column Name: " + cellValue); Console.Read(); //Create user obj.CreateUser(); }
public static void DriverInitialize() { _driver = new OpenQA.Selenium.Chrome.ChromeDriver(); _driver.Manage().Window.Maximize(); _driver.Manage().Timeouts().ImplicitWait = System.TimeSpan.FromSeconds(30); }
public void WhenDepartureEqualDestination() { IWebDriver browser; bool passTest = false; browser = new OpenQA.Selenium.Chrome.ChromeDriver(); browser.Manage().Window.Maximize(); browser.Navigate().GoToUrl("http://avia.321.by/"); ClassPageFactory pageObject = new ClassPageFactory(browser); pageObject.Place_from.Clear(); pageObject.Place_from.SendKeys("Минск"); System.Threading.Thread.Sleep(1000); pageObject.Place_from.SendKeys(OpenQA.Selenium.Keys.Enter); pageObject.DepartureDate_first.Click(); System.Threading.Thread.Sleep(1000); pageObject.Calendar_datefirst.Click(); pageObject.Place_to.Clear(); pageObject.Place_to.SendKeys("Минск"); System.Threading.Thread.Sleep(1000); pageObject.Place_to.SendKeys(OpenQA.Selenium.Keys.Enter); pageObject.DepartureDate_second.Click(); System.Threading.Thread.Sleep(1000); pageObject.Calendar_datesecond.Click(); pageObject.SearchButton.Click(); System.Threading.Thread.Sleep(5000); passTest = pageObject.WarningWindow.Displayed; Assert.IsTrue(passTest, "Departure City Equal Destination City! Input Error!"); }
public TestRunController(IWebHostEnvironment env, AppsData data, OpenQA.Selenium.Chrome.ChromeDriver driver, AppsContext ctx) { _env = env; _db = data.AppsDB; _data = data; _driver = driver; _ctx = ctx; }
public void GivenUserIsOnMainPage() { IWebDriver driver = new OpenQA.Selenium.Chrome.ChromeDriver(@"D:\1\"); driver.Manage().Window.Maximize(); driver.Navigate().GoToUrl("https://loving-hermann-e2094b.netlify.app/index.html"); signUpPage = new SignUpPage(driver); }
private void FindBD() { if (Browser == null) { Browser = new OpenQA.Selenium.Chrome.ChromeDriver(); } else { Browser.Navigate().GoToUrl("http://myanimeshelf.com/"); List <IWebElement> BDayGuy = Browser.FindElements(By.CssSelector(".content td:nth-last-child(1) a")).ToList(); // B-days List <string> BDay = Tools4help.GetString(BDayGuy); DateTime thisDay = DateTime.Today; for (int i = 0; i < BDay.Count; i++) { Browser.Navigate().GoToUrl("https://myanimeshelf.com/shelf/" + BDay[i]); IWebElement LastOnline = Browser.FindElement(By.CssSelector(".mc .broken tr:nth-last-child(6) td:nth-last-child(1) ")); string LastOnlineNoTime = LastOnline.Text.Substring(0, LastOnline.Text.LastIndexOf(',')); DateTime regDate = DateTime.ParseExact(LastOnlineNoTime, "dd MMM yy", CultureInfo.InvariantCulture); string age; try { IWebElement Age = Browser.FindElement(By.CssSelector(".mb .broken tr:nth-last-child(4) td:nth-last-child(1)")); int start = (Age.Text.IndexOf("(") + 1); int end = Age.Text.LastIndexOf("years)"); age = Age.Text.Substring(start, end - start - 1); } catch { IWebElement Age = Browser.FindElement(By.CssSelector(".mb .broken tr:nth-last-child(3) td:nth-last-child(1)")); // Не у всех указан пол int start = (Age.Text.IndexOf("(") + 1); int end = Age.Text.LastIndexOf("years)"); age = Age.Text.Substring(start, end - start - 1); } TimeSpan span = thisDay - regDate; int deltaDay = span.Days; bool fsb = false; if ((BDay[i].StartsWith("id")) || (BDay[i].StartsWith("tw_")) || (BDay[i].StartsWith("fb_")) || (BDay[i].StartsWith("vk_")) || (BDay[i].StartsWith("gp_"))) // это в отдельную функцию { //MessageBox.Show("eto fsb"); fsb = true; } if (deltaDay < Convert.ToInt32(zahodDay.Text)) { if (yatutnuzhen7()) { if (!fsb) { BDaypostCreate(BDay[i], Convert.ToInt32(age)); } else { BDaypostCreate("", Convert.ToInt32(age)); } } } } } }
public static List <string> getter() { IWebDriver Browser = new OpenQA.Selenium.Chrome.ChromeDriver(); Browser.Manage().Window.Maximize(); Browser.Navigate().GoToUrl("http://apip.gov.gn/?q=content/annonces-l%C3%A9gales"); Regex RCCM = new Regex("\\d{3}[.]\\d{3}[A-Z]|\\d{6}[A-Z]|\\d{6}|\\d{3}[.]\\d{3}"); Regex Date = new Regex("\\d{2}[/]\\d{2}[/]\\d{4}|\\d{1,2}\\s\\w{3,10}[,]\\s\\d{4}"); List <string> output = new List <string>(); try { bool flag = true; while (true) { if (flag) { flag = !flag; ReadOnlyCollection <IWebElement> list = Browser.FindElements(By.ClassName("views-field-title")); ReadOnlyCollection <IWebElement> listDates = Browser.FindElements(By.ClassName("views-field-body-1")); for (int i = 0; i < list.Count; i++) { string combine = ""; string date = listDates[i].Text.ToString(); combine += list[i].Text.ToString() + "|"; Match match = RCCM.Match(date); string tmp = match.Value.ToString(); combine += tmp + "|"; match = Date.Match(date); tmp = match.Value.ToString(); combine += tmp; output.Add(combine); } } else { flag = !flag; } IWebElement element = Browser.FindElement(By.XPath("//A[@title='Go to next page'][text()='next ›']")); Actions actions = new Actions(Browser); actions.MoveToElement(element); actions.Click().Perform(); } } catch { } Browser.Quit(); return(output); }
static void Main(string[] args) { //Create the reference IWebDriver driver =new OpenQA.Selenium.Chrome.ChromeDriver(); driver.Navigate().GoToUrl("http://www.google.com"); IWebElement ele = driver.FindElement(By.Id("gs_htif0")); ele.SendKeys("Execute Automation"); }
static void Main(string[] args) { var chrome = new OpenQA.Selenium.Chrome.ChromeDriver { Url = "http://www.google.com" }; chrome.FindElementById("lst-ib").SendKeys("muratoner.net"); chrome.FindElementByClassName("lsb").Click(); }
public IWebDriver NavigatetoApp(string url) { IWebDriver myChrome; myChrome = new OpenQA.Selenium.Chrome.ChromeDriver(); myChrome.Navigate().GoToUrl(url); myChrome.Manage().Window.Maximize(); return(myChrome); }
public void GivenILoginIntoMyApp() { // ScenarioContext.Current.Pending(); OpenQA.Selenium.IWebDriver webdriver = new OpenQA.Selenium.Chrome.ChromeDriver(); webdriver.Navigate().GoToUrl("http://automationpractice.com/index.php?controller=authentication&back=my-account"); loginPage = new LoginPage(webdriver); myAccountPage = new MyAccountPage(webdriver); Console.WriteLine("Given"); }
static void Main(string[] args) { IWebDriver browser = new OpenQA.Selenium.Firefox.FirefoxDriver();//1. Открыть браузер IWebDriver browser2 = new OpenQA.Selenium.Chrome.ChromeDriver(); Test test = new Test(browser); test.test(); Test test2 = new Test(browser2); test2.test(); }
static void Main(string[] args) { StringBuilder message = new StringBuilder(); decimal pageSize = 30m; int index = 0; using (IWebDriver driver = new OpenQA.Selenium.Chrome.ChromeDriver()) { driver.Navigate().GoToUrl(Url); //driver.Url = "http://www.baidu.com"是一样的 var account = driver.FindElement(By.Id("log_ph")); account.Click(); account.SendKeys(UserName); var password = driver.FindElement(By.Id("log_ps")); password.Click(); password.SendKeys(Password); var login = driver.FindElement(By.Id("log_ok")); login.Click(); //driver.Navigate().GoToUrl(""); //由于这边是异步加载,需要等待一定的时候,异步加载页面才能加载出来。 Thread.Sleep(20000); //var page1 = driver.PageSource; driver.SwitchTo().Frame(0); //var page = driver.PageSource; var pageNumber = Math.Ceiling(TrackingNumbers().Length / pageSize); var flag = true; for (int i = 0; i < pageNumber; i++) { try { var trackingNumbers = TrackingNumbers().Skip(i * (int)pageSize).Take((int)pageSize).ToArray(); index = i; Information(driver, trackingNumbers, i); message.AppendLine($"index:{index},Success!"); } catch (Exception ex) { flag = false; message.AppendLine($"index:{index},Error:{ex.Message}"); } } if (flag) { message.AppendLine("all success!"); } } Console.WriteLine(message.ToString()); Console.ReadKey(); }
// Поиск элементов на странице. //Попытка установки значения полю на странице public void StartProcessing() { try { using (IWebDriver driver = new OpenQA.Selenium.Chrome.ChromeDriver()) { Message?.Invoke("Запуск браузера"); System.Threading.Thread.Sleep(3000); driver.Navigate().GoToUrl("https://websbor.gks.ru/webstat/#!/gs/statistic-codes"); System.Threading.Thread.Sleep(3000); ElementPageManager pageManager = new ElementPageManager(driver); foreach (var organization in organizations) { Message?.Invoke(string.Format("Установка значение полю ИНН {0}", organization.Inn)); pageManager.TextEntityInn = organization.Inn; pageManager.ButtonClick(); pageManager.FindTableInPage(organization); //SendKeyPage(webElements.entityInn, organization.Inn); //webElements.entityButton.Click(); //if (element is null) //{ // errorStep = -1; // throw new Exception("Не найден элемент на странице. Работа программы невозможна"); //} //element.Clear(); //element.SendKeys(organization.Inn); //btn.Click(); System.Threading.Thread.Sleep(1000); //Actions actions = new Actions(browser); // actions.MoveToElement(btn.FirstOrDefault()).Build();//.Perform(); // btn.FirstOrDefault().Click(); } // System.Threading.Thread.Sleep(5000000); } } catch (Exception ex) { //errorStep--; //if (errorStep < 0) throw ex; } }
public override void RunCommand(object sender) { var engine = (Core.Automation.Engine.AutomationEngineInstance)sender; var driverPath = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(System.Windows.Forms.Application.ExecutablePath), "Resources"); var seleniumEngine = v_EngineType.ConvertToUserVariable(sender); var instanceName = v_InstanceName.ConvertToUserVariable(sender); OpenQA.Selenium.DriverService driverService; OpenQA.Selenium.IWebDriver webDriver; if (seleniumEngine == "Chrome") { OpenQA.Selenium.Chrome.ChromeOptions options = new OpenQA.Selenium.Chrome.ChromeOptions(); if (!string.IsNullOrEmpty(v_SeleniumOptions)) { var convertedOptions = v_SeleniumOptions.ConvertToUserVariable(sender); options.AddArguments(convertedOptions); } driverService = OpenQA.Selenium.Chrome.ChromeDriverService.CreateDefaultService(driverPath); webDriver = new OpenQA.Selenium.Chrome.ChromeDriver((OpenQA.Selenium.Chrome.ChromeDriverService)driverService, options); } else { driverService = OpenQA.Selenium.IE.InternetExplorerDriverService.CreateDefaultService(driverPath); webDriver = new OpenQA.Selenium.IE.InternetExplorerDriver((OpenQA.Selenium.IE.InternetExplorerDriverService)driverService, new OpenQA.Selenium.IE.InternetExplorerOptions()); } //add app instance engine.AddAppInstance(instanceName, webDriver); //handle app instance tracking if (v_InstanceTracking == "Keep Instance Alive") { GlobalAppInstances.AddInstance(instanceName, webDriver); } //handle window type on startup - https://github.com/saucepleez/taskt/issues/22 switch (v_BrowserWindowOption) { case "Maximize": webDriver.Manage().Window.Maximize(); break; case "Normal": case "": default: break; } }
static void Main(string[] args) { using (var driver = new OpenQA.Selenium.Chrome.ChromeDriver()) { driver.Navigate().GoToUrl("https://www.bing.com/"); driver.FindElementById("sb_form_q").SendKeys("Selenium WebDriver"); driver.FindElementById("sb_form_go").Click(); Console.WriteLine("OK"); Console.ReadKey(intercept: true); } }
static void Main(string[] args) { using (var driver = new OpenQA.Selenium.Chrome.ChromeDriver()) { driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(3); driver.Navigate().GoToUrl("https://www.bing.com/"); driver.FindElementById("sb_form_q").SendKeys("Selenium WebDriver"); driver.FindElementByClassName("search").Click(); Console.WriteLine("OK"); Console.ReadKey(intercept: true); } }
internal void StartSeChromeUrl(string url, ref IWebDriver Drv) { try { Drv = new OpenQA.Selenium.Chrome.ChromeDriver(); // Drv.Manage().Window.Maximize(); Drv.Navigate().GoToUrl(@url); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }
//initialize own constructor and launch Auth public seleniumHundler(string login, string pass, string text, int timer, Xmlelement[] vector) : base(login, pass, text, timer) { links = vector; _comPage = new comLinks[links.Length]; browser = new OpenQA.Selenium.Chrome.ChromeDriver(); Auth(); for (int i = 0; i < links.Length; i++) { //we'll navigate to link and get our number by previously shown method _comPage[i] = returnParams(links[i].link); colorMes($"Group id: {_comPage[i].groupnum} post id: {_comPage[i].postnum} link: {_comPage[i].grouplink}", ConsoleColor.Yellow); } colorMes("Initializing was successfully completed", ConsoleColor.Green); comnavTo(); //launch method for navigate to url } //
public void TestMethod1() { //Navegando com o Chrome using (IWebDriver driver = new OpenQA.Selenium.Chrome.ChromeDriver()) { SearchAndNavigateTest(driver); } //Navegando com o Firefox using (IWebDriver driver = new OpenQA.Selenium.Firefox.FirefoxDriver()) { SearchAndNavigateTest(driver); } }
public IWebDriver GetWebDriver(WebDriverParameters parameters) { IWebDriver driver = null; var desiredCaps = new DesiredCapabilities(); foreach (var cap in parameters.capabilities) { desiredCaps.SetCapability(cap.Key, cap.GetValue()); } //desiredCaps.SetCapability(CapabilityType.Platform, new Platform(GetPlatformTypeFromString(parameters.platform))); //desiredCaps.SetCapability(CapabilityType.BrowserName, parameters.browserName); //if (parameters.version != string.Empty) //{ // desiredCaps.SetCapability(CapabilityType.Version, parameters.version); //} var ieOptions = new OpenQA.Selenium.IE.InternetExplorerOptions(); ieOptions.IgnoreZoomLevel = true; ieOptions.UnexpectedAlertBehavior = OpenQA.Selenium.IE.InternetExplorerUnexpectedAlertBehavior.Accept; var chromeOptions = new OpenQA.Selenium.Chrome.ChromeOptions(); chromeOptions.AddAdditionalCapability("unexpectedAlertBehaviour", "Accept"); switch (parameters.browserName.ToUpperInvariant()) { case "CHROME": driver = new OpenQA.Selenium.Chrome.ChromeDriver(chromeOptions); break; case "ANDROIDCHROME": driver = new OpenQA.Selenium.Chrome.ChromeDriver(chromeOptions); break; case "IE": driver = new OpenQA.Selenium.IE.InternetExplorerDriver(ieOptions); break; case "FIREFOX": driver = new OpenQA.Selenium.Firefox.FirefoxDriver(desiredCaps); break; } //driver.S(CapabilityType.UNEXPECTED_ALERT_BEHAVIOUR, UnexpectedAlertBehaviour.ACCEPT); return driver; }
public async void FBLogin(String user, String pass) { Program.mainForm.btnLogin.Enabled = false; if (user == "" || pass == "") { MessageBox.Show("Điền thông tin đăng nhập!"); Program.mainForm.btnLogin.Enabled = true; return; } //Program.loadingForm = new LoadingForm(); //Program.loadingForm.setText("KHỞI TẠO HỆ THỐNG..."); //Program.loadingForm.Show(); //Thread t = new System.Threading.Thread(new System.Threading.ThreadStart(() => Program.loadingForm.ShowDialog())); //t = new System.Threading.Thread(() => Program.loadingForm.ShowDialog()); //t.Start(); // LoadingForm.Show() // Bật trình duyệt khi Login if (driver == null) { setReady(false, "Đang khởi tạo hệ thống"); //var profile = new OpenQA.Selenium.Firefox.FirefoxProfile(); //profile.SetPreference("general.useragent.override", "NokiaC5-00/061.005 (SymbianOS/9.3; U; Series60/3.2 Mozilla/5.0; Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/525 (KHTML, like Gecko) Version/3.0 Safari/525 3gpp-gba"); //profile.SetPreference("webdriver.load.strategy", "unstable"); //profile.SetPreference("permissions.default.stylesheet", 2); //profile.SetPreference("permissions.default.image", 2); //profile.AddExtension("App/Firefox/firebug.xpi"); //profile.SetPreference("dom.ipc.plugins.enabled.libflashplayer.so", "false"); IEnumerable<int> pidsBefore = Process.GetProcessesByName("chrome").Select(p => p.Id); try { //this.driver = await Task.Factory.StartNew(() => new OpenQA.Selenium.Firefox.FirefoxDriver(profile)); /* OpenQA.Selenium.Firefox.FirefoxBinary firefox = new OpenQA.Selenium.Firefox.FirefoxBinary("App/Firefox/firefox.exe"); this.driver = new OpenQA.Selenium.Firefox.FirefoxDriver(firefox, profile);*/ var chromeDriverService = OpenQA.Selenium.Chrome.ChromeDriverService.CreateDefaultService(Path.GetDirectoryName(Application.ExecutablePath) + @"\App"); chromeDriverService.HideCommandPromptWindow = true; OpenQA.Selenium.Chrome.ChromeOptions chromeDriverOptions = new OpenQA.Selenium.Chrome.ChromeOptions(); chromeDriverOptions.AddArgument("--user-agent=NokiaC5-00/061.005 (SymbianOS/9.3; U; Series60/3.2 Mozilla/5.0; Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/525 (KHTML, like Gecko) Version/3.0 Safari/525 3gpp-gba"); //Mozilla/5.0 (Windows NT 6.3; rv:36.0) Gecko/20100101 Firefox/36.0 chromeDriverOptions.AddArgument("ignore-certificate-errors"); chromeDriverOptions.AddArgument("no-sandbox"); chromeDriverOptions.AddExtension(Path.GetDirectoryName(Application.ExecutablePath) + @"\App\block.crx"); driver = await Task.Factory.StartNew(() => new OpenQA.Selenium.Chrome.ChromeDriver(chromeDriverService, chromeDriverOptions)); //Thread.Sleep(1000); } catch { //Program.loadingForm.RequestStop(); MessageBox.Show("Thiếu File!?"); /* if (MessageBox.Show("Để chạy chương trình, bạn cần cài đặt trình duyệt Mozilla Firefox tích hợp. Cài đặt ngay?", "Cài đặt trình duyệt", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == System.Windows.Forms.DialogResult.Yes) { MessageBox.Show("Chương trình có thể bị treo trong vài giây tới. Nhấn OK để bắt đầu cài đặt!"); // install firefox 34 ProcessStartInfo startInfo = new ProcessStartInfo(); startInfo.CreateNoWindow = false; startInfo.UseShellExecute = false; startInfo.FileName = "firefox34.exe"; startInfo.WindowStyle = ProcessWindowStyle.Hidden; startInfo.Arguments = "-ms"; try { using (Process exeProcess = Process.Start(startInfo)) { exeProcess.WaitForExit(); } } catch { } string[] folders = Directory.GetDirectories(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\Mozilla\\Firefox\\Profiles\\", "*.default"); string prefs_js = folders[0] + "\\prefs.js"; StreamWriter sw; sw = File.AppendText(prefs_js); sw.WriteLine("user_pref('app.update.auto', false);"); sw.WriteLine("user_pref('app.update.enabled', false);"); sw.Close(); MessageBox.Show("Hoàn thành cài đặt! Hãy khởi động lại chương trình!"); }*/ Exceptions_Handler(); } IEnumerable<int> pidsAfter = Process.GetProcessesByName("chrome").Select(p => p.Id); newFirefoxPids = pidsAfter.Except(pidsBefore); try { foreach (int pid in newFirefoxPids) { int hWnd = Process.GetProcessById(pid).MainWindowHandle.ToInt32(); ShowWindow(hWnd, SW_HIDE); } } catch { // newFirefoxPids.Count == 0 //Program.loadingForm.RequestStop(); MessageBox.Show("Không tìm thấy cửa sổ Trình duyệt!"); Exceptions_Handler(); } driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(1)); driver.Manage().Timeouts().SetScriptTimeout(TimeSpan.FromSeconds(10)); driver.Manage().Timeouts().SetPageLoadTimeout(TimeSpan.FromSeconds(30)); setReady(true); } //Program.loadingForm.setText("ĐĂNG NHẬP TÀI KHOẢN FACEBOOK..."); setReady(false, "Đang đăng nhập"); await Task.Factory.StartNew(() => Navigate(links["fb_url"])); if (await Task.Factory.StartNew(() => driver.FindElementsByName("email").Count) == 0) { //Program.loadingForm.RequestStop(); //t.Abort(); //t.Join(); MessageBox.Show("Có lỗi với đường truyền mạng hoặc tài khoản facebook của bạn!\nHãy kiểm tra lại"); Program.mainForm.btnLogin.Enabled = true; Program.mainForm.txtUser.Enabled = true; Program.mainForm.txtPass.Enabled = true; foreach (Control item in Program.mainForm.dgGroups.Controls.OfType<Control>()) { if (item.Name == "group_loading_gif") Program.mainForm.dgGroups.Controls.Remove(item); } setReady(true); return; } await Task.Factory.StartNew(() => InputValueAdd("email", user)); await Task.Factory.StartNew(() => InputValueAdd("pass", pass)); await Task.Factory.StartNew(() => Click("login")); /* WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(60)); await Task.Factory.StartNew(() => wait.Until<IWebElement>((d) => { return d.FindElement(By.Name("xc_message")); }));*/ //await Task.Factory.StartNew(() => ((IJavaScriptExecutor)driver).ExecuteScript("alert(123)")); driver.Manage().Timeouts().SetPageLoadTimeout(TimeSpan.FromSeconds(300)); string after_login_url = await Task.Factory.StartNew(() => driver.Url); driver.Manage().Timeouts().SetPageLoadTimeout(TimeSpan.FromSeconds(30)); check_after_login: if (after_login_url.Contains("home.php") || after_login_url.Contains("phoneacquire")) { Program.mainForm.btnLogin.Text = "Đăng nhập thành công!"; Program.mainForm.AcceptButton = null; Program.mainForm.btnPost.Enabled = true; Program.mainForm.btnInvite.Enabled = true; Program.mainForm.btnGroupSearch.Enabled = true; Program.mainForm.btnGroupJoin.Enabled = true; Program.mainForm.btnPMImportFriends.Enabled = true; Program.mainForm.btnPM.Enabled = true; Program.mainForm.btnPMSendFrRequests.Enabled = true; Program.mainForm.btnInteractionsFollow.Enabled = true; Program.mainForm.btnInteractionsPoke.Enabled = true; Program.mainForm.btnInteractionsLike.Enabled = true; Program.mainForm.btnPMImportProfile.Enabled = true; Program.mainForm.btnPMImportGroup.Enabled = true; Program.mainForm.btnCommentImportComment.Enabled = true; Program.mainForm.btnPostImportGroups.Enabled = true; Program.mainForm.btnGroupImportFriends.Enabled = true; Program.mainForm.btnCommentScan.Enabled = true; Program.mainForm.btnFanpageComment.Enabled = true; Program.mainForm.btnFanpageGroupPost.Enabled = true; Program.mainForm.btnEventInviteFriends.Enabled = true; Program.mainForm.btnFanpageSeeder.Enabled = true; Program.mainForm.btnFanpageInviteFriends.Enabled = true; Program.mainForm.btnFanpageLike.Enabled = true; Program.mainForm.btnGraphSearch.Enabled = true; var photos = await Task.Factory.StartNew(() => driver.FindElementsByXPath("//a[contains(@href, '?v=photos')]")); if (photos.Count > 0) { String href = photos[0].GetAttribute("href"); Match match = Regex.Match(href, @".com\/([A-Za-z0-9\-\.]+)\?v\=photos", RegexOptions.None); if (match.Success) { user_id = match.Groups[1].Value; } } var nodes = await Task.Factory.StartNew(() => driver.FindElementsByXPath("//img[contains(@src, 'fbcdn-profile-a.akamaihd.net')]")); if (nodes.Count > 0) { Program.mainForm.lblUsername.Text = nodes[0].GetAttribute("alt"); } try { user_id_img = user_id; await Task.Factory.StartNew(() => { try { user_id_img = driver.FindElementByName("target").GetAttribute("value"); } catch { } }); Program.mainForm.pbAvatar.WaitOnLoad = false; Program.mainForm.pbAvatar.LoadAsync(links["facebook_graph"] + "/" + user_id_img + "/picture"); Program.mainForm.lblViewProfile.Text = "https://facebook.com/" + user_id_img; } catch { } //Program.mainForm.Focus(); //Program.loadingForm.setText("ĐĂNG NHẬP THÀNH CÔNG! ĐANG TẢI DANH SÁCH NHÓM..."); Program.mainForm.lblStatus.Text = "Tải danh sách nhóm..."; Program.mainForm.dgGroups.Rows.Clear(); if (Program.mainForm.cbGroupReload.Checked) { try { DataSet DS = new DataSet(); DS.ReadXml(RemoveSpecialCharacters(user_id_img) + "_groups.xml"); bool empty = true; foreach (DataRow dr in DS.Tables[0].Rows) { Program.mainForm.dgGroups.Rows.Add(dr[0], dr[1], dr[2], dr[3]); await TaskEx.Delay(1); if (dr[3].ToString() == "1") empty = false; } if (empty) { foreach (DataGridViewRow row in Program.mainForm.dgGroups.Rows) { DataGridViewCheckBoxCell chk = (DataGridViewCheckBoxCell)row.Cells[3]; chk.Value = 1; } } } catch { } } if (Program.mainForm.dgGroups.RowCount == 0) await getGroups(); else { //Program.loadingForm.RequestStop(); //t.Abort(); //t.Join(); Program.mainForm.lblProgress.Text = "0/" + Program.mainForm.dgGroups.Rows.Count; setReady(true, "Số lượng nhóm: " + Program.mainForm.dgGroups.Rows.Count); } Program.mainForm.btnLogin.Text = "Đăng xuất"; Program.mainForm.btnLogin.Enabled = true; foreach (Control item in Program.mainForm.dgGroups.Controls.OfType<Control>()) { if (item.Name == "group_loading_gif") Program.mainForm.dgGroups.Controls.Remove(item); } } else { if (getUrl().Contains("home.php")) { goto check_after_login; // check again, just in case 100ms is not enough } Program.mainForm.txtUser.Enabled = true; Program.mainForm.txtPass.Enabled = true; foreach (Control item in Program.mainForm.dgGroups.Controls.OfType<Control>()) { if (item.Name == "group_loading_gif") Program.mainForm.dgGroups.Controls.Remove(item); } //Program.loadingForm.RequestStop(); //t.Abort(); //t.Join(); if (getUrl().Contains("checkpoint")) MessageBox.Show("Hãy vô hiệu hóa bảo mật tài khoản trước khi sử dụng AUTO!"); MessageBox.Show("Kiểm tra lại thông tin đăng nhập!\nNếu bạn chắc chắn thông tin đăng nhập là đúng,\nhãy đăng nhập lại tài khoản trên trình duyệt trước khi tiếp tục!"); Program.mainForm.btnLogin.Enabled = true; setReady(true); return; } // await Task.Factory.StartNew(() => new WebDriverWait(driver, TimeSpan.FromSeconds(10))); // Chờ tải xong trang }
private async Task ChromeAgent() { if (driver2 != null) { return; } ready2 = false; Program.mainForm.lblStatus.Text = "Khởi tạo kết nối nâng cao"; IEnumerable<int> pidsBefore = Process.GetProcessesByName("chrome").Select(p => p.Id); var chromeDriverService = OpenQA.Selenium.Chrome.ChromeDriverService.CreateDefaultService(Path.GetDirectoryName(Application.ExecutablePath) + @"\App"); chromeDriverService.HideCommandPromptWindow = true; OpenQA.Selenium.Chrome.ChromeOptions chromeDriverOptions = new OpenQA.Selenium.Chrome.ChromeOptions(); driver2 = await Task.Factory.StartNew(() => new OpenQA.Selenium.Chrome.ChromeDriver(chromeDriverService, chromeDriverOptions)); IEnumerable<int> pidsAfter = Process.GetProcessesByName("chrome").Select(p => p.Id); var newChromePids = pidsAfter.Except(pidsBefore); try { foreach (int pid in newChromePids) { int hWnd = Process.GetProcessById(pid).MainWindowHandle.ToInt32(); ShowWindow(hWnd, SW_HIDE); } } catch { MessageBox.Show("Có lỗi xảy ra! Hãy khởi động lại chương trình"); Exceptions_Handler(); } Program.mainForm.lblStatus.Text = "Thiết lập kết nối nâng cao"; driver2.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10)); await Task.Factory.StartNew(() => driver2.Url = "https://www.facebook.com/"); WebDriverWait wait = new WebDriverWait(driver2, TimeSpan.FromSeconds(60)); await Task.Factory.StartNew(() => { try { driver2.Url = "https://www.facebook.com/"; } catch { ((IJavaScriptExecutor)driver2).ExecuteScript("return window.stop()"); } }); await Task.Factory.StartNew(() => { wait.Until<Boolean>((d) => { return ((IJavaScriptExecutor)driver2).ExecuteScript("return document.readyState").Equals("complete"); }); }); try { driver2.ExecuteScript(@"document.getElementsByName('email')[0].value = '" + System.Web.HttpUtility.JavaScriptStringEncode(Program.mainForm.txtUser.Text) + "';"); } catch { MessageBox.Show("Đường truyền mạng quá chậm, vui lòng thử lại sau!"); Exceptions_Handler(); } await Task.Factory.StartNew(() => { driver2.ExecuteScript(@"document.getElementsByName('pass')[0].value = '" + System.Web.HttpUtility.JavaScriptStringEncode(Program.mainForm.txtPass.Text) + "';"); driver2.ExecuteScript(@"document.getElementById('loginbutton').click();"); }); await Task.Factory.StartNew(() => { wait.Until<Boolean>((d) => { return ((IJavaScriptExecutor)driver2).ExecuteScript("return document.readyState").Equals("complete"); }); }); await TaskEx.Delay(1000); ready2 = true; }
private static bool DoesPostReturnError(string name, string email, string messageText) { var driversDir = new DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory).Parent.Parent.Parent.GetDirectories() .First(d => d.Name == "Drivers"); using (var driver = new OpenQA.Selenium.Chrome.ChromeDriver(driversDir.FullName)) { driver.Url = BaseUrl + ContactResource; driver.Navigate(); driver.FindElement(By.CssSelector(ContactNameInputSelector)).SendKeys(name); driver.FindElement(By.CssSelector(ContactEmailInputSelector)).SendKeys(email); driver.FindElement(By.CssSelector(ContactMessageBoxInputSelector)).SendKeys(messageText); driver.FindElement(By.CssSelector(ContactSendSelector)).Click(); Thread.Sleep(1000); // Wait for page navigation to finish try { var p = driver.FindElements(By.CssSelector(ContactErrorSelector)); if (p == null || p.Count == 0) return false; return p.First().Text.Contains("Server Error"); } catch (Exception) { } return false; } }
private ClientSideViewModel ClientSideCheck(string name, string email, string messageText) { var driversDir = new DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory).Parent.Parent.Parent.GetDirectories() .First(d => d.Name == "Drivers"); using (var driver = new OpenQA.Selenium.Chrome.ChromeDriver(driversDir.FullName)) { driver.Url = BaseUrl + ContactResource; driver.Navigate(); driver.FindElement(By.CssSelector(ContactNameInputSelector)).SendKeys(name); driver.FindElement(By.CssSelector(ContactEmailInputSelector)).SendKeys(email); driver.FindElement(By.CssSelector(ContactMessageBoxInputSelector)) .SendKeys(messageText); bool emailRequiredVisible = driver.FindElement(By.CssSelector(ContactEmailRequiredValidationSelector)).GetCssValue("visibility") != "hidden"; bool emailInvalidVisible = driver.FindElement(By.CssSelector(ContactEmailInvalidValidationSelector)).GetCssValue("visibility") != "hidden"; bool nameRequiredVisible = driver.FindElement(By.CssSelector(ContactNameRequiredValidationSelector)).GetCssValue("visibility") != "hidden"; bool textRequiredVisible = driver.FindElement(By.CssSelector(ContactMessageBoxRequiredValidationSelector)) .GetCssValue("visibility") != "hidden"; return new ClientSideViewModel { EmailInvalidInputVisible = emailInvalidVisible, EmailRequiredVisible = emailRequiredVisible, NameRequiredVisible = nameRequiredVisible, TextRequiredVisible = textRequiredVisible }; } }
static void Main(string[] args) { var dictionaryFile = args.Length> 0 ? args[0] ?? "TestDictionary.json" : "TestDictionary.json"; var dict = new List<string>(); var validAddresses = new List<string>(); bool goodFile = false; try { dict = JsonConvert.DeserializeObject<List<string>>(File.ReadAllText(dictionaryFile)); goodFile = true; } catch (FileNotFoundException) { Console.WriteLine("File doesn't exist."); } catch(Exception) { Console.WriteLine("File may be malformed, use JSON format."); } if (!goodFile) return; using (var drv = new OpenQA.Selenium.Chrome.ChromeDriver()) { drv.Url = "https://flubit.com/sign-in/forgot-password/"; foreach (var item in dict) { //page forces refresh, so we need to re-grab references. var emailTextBox = drv.FindElementByCssSelector("input[name=\"email\"]"); var submitButton = drv.FindElementByCssSelector("#btn_signin"); emailTextBox.Clear(); emailTextBox.SendKeys(item); submitButton.Click(); Thread.Sleep(3000); var alertBox = drv.FindElementByCssSelector(".alert"); var cssClasses = alertBox.GetAttribute("class").Split(' '); var isAttachedToAccount = cssClasses.Contains("alert-success"); Console.WriteLine("Email: {0} | Attached to an account?: {1} ", item, isAttachedToAccount ? "Yes" : "No"); if (isAttachedToAccount) validAddresses.Add(item); } using(var fs = new FileStream("ValidAccounts.txt", FileMode.OpenOrCreate)) { var addressText = validAddresses.Aggregate(new StringBuilder(), (sb, text) => sb.Append(text).Append(Environment.NewLine)).ToString(); var textBytes = Encoding.UTF8.GetBytes(addressText); fs.Write(textBytes, 0, textBytes.Length); Console.WriteLine("Written out {0} valid account(s) to {1}", validAddresses.Count, fs.Name); } } Console.Read(); }