public void XSSAttackMethod() { ChromeDriver chrome = new ChromeDriver(); // Set up the attack chrome.Navigate().GoToUrl("http://localhost/Security/SafeWebForm.aspx"); chrome.FindElement(By.XPath("//input[@type = 'text'][@name = 'nameBox']")).SendKeys("<script>document.getElementsByTagName(\"td\")[0].innerHTML = \"<img src='http://i.imgur.com/s4DdGEx.jpg'>\";</script>"); chrome.FindElement(By.XPath("//input[@type = 'text'][@name = 'gpaBox']")).SendKeys("2"); chrome.FindElement(By.XPath("//input[@type = 'submit'][@name = 'submit']")).Click(); // Check if the ReadUnsafe page is vulnerable to XSS attacks, which it should be chrome.Navigate().GoToUrl("http://localhost/Security/UnsafeRead.aspx"); try { chrome.FindElementByTagName("img"); } catch (Exception e) { Assert.Fail("Image tag not found in the ReadUnsafe.aspx\nThis page is supposed to be vulnerable to XSS attacks"); } // Check if the ReadSafe page is vulnerable to XSS attacks, which it should not be chrome.Navigate().GoToUrl("http://localhost/Security/SafeRead.aspx"); try { chrome.FindElementByTagName("img"); Assert.Fail("Image tag found in the ReadUSafe.aspx\nThis page is not supposed to be vulnerable to XSS attacks"); } catch (Exception e) { } }
public void HomePageIsCorrect() { var service = ChromeDriverService.CreateDefaultService(Environment.CurrentDirectory, _driverFile); var chromeOptions = new ChromeOptions(); chromeOptions.AddArgument("--headless"); var webDriver = new ChromeDriver(service, chromeOptions); webDriver.Navigate().GoToUrl("http://localhost:5000/"); webDriver.FindElementByTagName("button").Click(); Thread.Sleep(5000); var paragraph = webDriver.FindElementByTagName("p"); try { paragraph.Text.ShouldBe("This is a successful call!"); } finally { webDriver.Quit(); } }
/// <summary> /// after driver is correct, update local html /// </summary> public static void UpdateLocalHtml() { ChromeDriverService service = ChromeDriverService.CreateDefaultService(); service.HideCommandPromptWindow = true; ChromeOptions options = new ChromeOptions(); options.AddArgument("headless"); ChromeDriver driver = new ChromeDriver(service, options); driver.Navigate().GoToUrl(indexURL); int counter = 0; while ((string)driver.ExecuteScript("return document.readyState") != "complete") { System.Threading.Thread.Sleep(1000); counter++; if (counter > 20) { driver.Close(); return; } } System.Threading.Thread.Sleep(1000); string content = driver.FindElementByTagName("HTML").GetAttribute("innerHTML"); File.WriteAllText(localBackupFile, content); driver.Quit(); driver.Dispose(); }
private static void LoadAndParse(Site site) { using (var driver = new ChromeDriver()) { driver.Navigate().GoToUrl(site.Url); for (int i = 0; i < 100; i++) { var html = driver.FindElementByTagName("html"); try { if (TryParsePage(html.GetAttribute("innerHTML"), site.Id, site.ScrapingInfo)) { break; } } catch (StaleElementReferenceException) { } catch (FormatException) { Logger.LogCantParse(site.Id); break; } } driver.Close(); } }
public void CreatingNewIssueSavesCorrectly() { var data = new { Title = "Issue", Description = "Fix all the bugs", Status = IssueStatus.Done }; using (var driver = new ChromeDriver(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location))) { driver.Navigate().GoToUrl(@"https://*****:*****@"https://localhost:5000/Issue/Create", driver.Url); var titleInput = driver.FindElementById("Title"); titleInput.SendKeys(data.Title); var descriptionInput = driver.FindElementById("Description"); descriptionInput.SendKeys(data.Description); var statusSelect = driver.FindElementById("Status"); var selectElement = new SelectElement(statusSelect); selectElement.SelectByValue($"{(int)data.Status}"); var createButton = driver.FindElementByCssSelector("input.btn.btn-default"); Assert.Equal("Create", createButton.GetAttribute("value")); createButton.Click(); /* PAGE CHANGE */ Assert.Equal(@"https://localhost:5000/Issue", driver.Url); var table = driver.FindElementByTagName("tbody"); var rows = table.FindElements(By.CssSelector("tr")); foreach (var row in rows) { var columns = row.FindElements(By.TagName("td")); var col1 = columns.First(); var col2 = columns.Skip(1).First(); var col3 = columns.Skip(2).First(); var edit = col3.FindElement(By.CssSelector("a[href^='/Issue/Edit/']")); var editHref = edit.GetAttribute("href"); var editValue = edit.Text; var editIdString = editHref.Substring(editHref.LastIndexOf("/") + 1); var editId = int.Parse(editIdString); if (existingIds.Contains(editId)) { continue; } Assert.Equal(data.Title, col1.Text); Assert.Equal(data.Description, col2.Text); return; } throw new NotFoundException("Did not find new Issue in table"); } }
private static bool IsSuccessTextDisplayed(ChromeDriver driver) { WaitForPageLoad(driver); var body = driver.FindElementByTagName("span").Text; return(body.Contains("Your message was sent successfully")); }
protected override (string, string) GetProductGroupAndMaybePhotoLink(ChromeDriver driver, string imageUrl) { var pagehtml = driver.FindElementByTagName("body").GetProperty("innerHTML"); var groups = driver.FindElementByXPath("//*[@id=\"breadCrumbs\"]"); var list = groups.FindElements(By.TagName("li")); return(list[1].Text.Trim(), imageUrl); }
public void TestMethod1() { var url = "http://www.reservenewyorkcity.com"; List <string> sites = new List <string>() { "/", "/new-york-shows", "/euifghre", "/new-york-attractions", "/new-york-hotels", "/new-york-packages", "/new-york-packages", "/euifghre", }; var driver = new ChromeDriver(); foreach (var item in sites) { this.test = extent.CreateTest(item); var path = string.Format("{0}{1}", url, item); driver.Navigate().GoToUrl(path); if (driver.FindElementByTagName("body") != null) { this.test.Log(Status.Pass, "found body"); } else { this.test.Log(Status.Fail, "unable to find body"); } Assert.IsTrue(driver.FindElementByTagName("body") != null); //Assert.IsTrue(true); //this.test.Log(Status.Pass, "Assert Pass condition is true"); } driver.Quit(); }
public void Login() { browser.Navigate().GoToUrl(URL + "accounts/login/"); delay(1); browser.FindElementByName("username").SendKeys(UserName); browser.FindElementByName("password").SendKeys(Password); browser.FindElementByTagName("button").Click(); delay(2); }
public void MyTestOldProjectFormat() { using (var webDriver = new ChromeDriver()) { webDriver.Url = _baseAddress; var body = webDriver.FindElementByTagName("body").Text; Assert.That(body, Is.Not.Empty); } }
/// <summary> /// Browser test recaptcha normal /// </summary> private static void browser_test_normal() { Console.WriteLine("[=] BROWSER TEST STARTED (NORMAL CAPTCHA) [=]"); var s = ChromeDriverService.CreateDefaultService(); s.HideCommandPromptWindow = true; ChromeDriver d = new ChromeDriver(s); try { d.Navigate().GoToUrl(TEST_PAGE_NORMAL); // go to normal test page // complete regular data d.FindElementByName("username").SendKeys("my-username"); d.FindElementByName("password").SendKeys("password-here"); Console.WriteLine("[+] Completed regular info"); // --------------------- // get sitekey string site_key = d.FindElementByClassName("g-recaptcha").GetAttribute("data-sitekey"); Console.WriteLine(string.Format("[+] Site key: {0}", site_key)); // complete captcha Console.WriteLine("[+] Waiting for recaptcha to be solved ..."); ImageTypersAPI i = new ImageTypersAPI(IMAGETYPERS_TOKEN); Dictionary <string, string> p = new Dictionary <string, string>(); p.Add("page_url", TEST_PAGE_NORMAL); p.Add("sitekey", site_key); string recaptcha_id = i.submit_recaptcha(p); // submit recaptcha info // while in progress, sleep for 10 seconds while (i.in_progress(recaptcha_id)) { Thread.Sleep(10000); } string g_response_code = i.retrieve_captcha(recaptcha_id); //Console.Write("CODE:"); Console.ReadLine(); string g_response_code = File.ReadAllText("g-response.txt"); // get manually Console.WriteLine(string.Format("[+] Got g-response-code: {0}", g_response_code)); // set g-response-code in page source (with javascript) IJavaScriptExecutor e = (IJavaScriptExecutor)d; string javascript_code = string.Format("document.getElementById('g-recaptcha-response').innerHTML = '{0}';", g_response_code); e.ExecuteScript(javascript_code); Console.WriteLine("[+] Code set in page"); // submit form d.FindElementByTagName("form").Submit(); Console.WriteLine("[+] Form submitted"); } finally { Thread.Sleep(5000); d.Quit(); // quit browser Console.WriteLine("[=] BROWSER TEST FINISHED [=]"); } }
private void Login(string user, string pass) { Wait(".form"); Driver.FindElementByName("username").SendKeys(user); Driver.FindElementByName("password").SendKeys(pass); Driver.FindElementByTagName("button").Click(); Wait("section"); }
public void TemaIndexIsOk() { var chrome = new ChromeDriver(); chrome.Url = Global.URL; chrome.FindElementById("temaLink").Click(); var title = chrome.FindElementByTagName("h2"); Assert.AreEqual("Temas", title.Text); chrome.Close(); }
static void Main(string[] args) { const string currentDir = "./"; string url = "file:///C:/_/projects/rojydesign/dogramaplovdiv.html"; using (ChromeDriver driver = new ChromeDriver(currentDir)) { driver.Url = url; IWebElement rojyLink = driver.FindElementByTagName("a"); string rojyLinkExtracted = rojyLink.GetAttribute("href"); string rojyLinkExpected = "http://rojy.design/"; if (rojyLinkExtracted == rojyLinkExpected) { Console.WriteLine("Link"); } IWebElement rojyImage = driver.FindElementByTagName("img"); string extractedSrcValue = rojyImage.GetAttribute("src"); string expectedSrcValue = "http://rojy.design/wp-content/uploads/2017/01/rojy-logo-1.png"; if (rojyImage.Displayed && rojyImage.Enabled && expectedSrcValue == extractedSrcValue) { Console.WriteLine("Tam e"); } IWebElement telephoneNumber = driver.FindElementById("contactNumber"); string extractedTelephoneNumber = telephoneNumber.Text; string expectedTelephoneNumber = "+359 896 222 575"; if (extractedTelephoneNumber == expectedTelephoneNumber) { Console.WriteLine("Telephone Number"); } else { Console.WriteLine("Wrong"); } } }
public void GivenBasicWebsiteThenConfirmWelcomeHeaderIsCorrect() { // Arrange _driver.Navigate().GoToUrl(_config["baseSiteUrl"]); // Act var headingText = _driver.FindElementByTagName("h1").Text; TakeScreenShot("welcome"); // Assert headingText.Should().Be("Welcome"); }
public void H1ElementIsRemovedFromPrivacyPage() { var serverFactory = new SeleniumServerFactory <Startup>(); var options = new ChromeOptions(); options.AddArguments("--headless"); options.AcceptInsecureCertificates = true; var webDriver = new ChromeDriver(options); webDriver.Navigate().GoToUrl(serverFactory.RootUri + "/Home/Privacy"); Assert.Throws <NoSuchElementException>(() => webDriver.FindElementByTagName("h1")); }
public void FillingFormToContact() { // 2. As 'button' is unique. find the element and click to show navigation menu var button = driver.FindElementByTagName("button"); // 3. Click and continue to find XPath to 'Contact' page button.Click(); var clickContact = driver.FindElement(by: By.XPath("//a[contains(text(),'Contact')]")); clickContact = wait.Until(ExpectedConditions.ElementToBeClickable(By.XPath("//a[contains(text(),'Contact')]"))); clickContact.Click(); //Filling Form Process var filling = driver.FindElement(By.XPath("//input[@placeholder='Name']")); filling.SendKeys("Khang Le"); filling = driver.FindElement(By.XPath("//input[@placeholder='Email']")); filling.SendKeys("*****@*****.**"); filling = driver.FindElement(By.XPath("//textarea[@placeholder='Comment']")); filling.SendKeys("This is a test for checking the accessible of elements in the website"); }
public void signup(string URI, string firstName, string lastName, string email) { // Initialize the Chrome Driver using (var driver = new ChromeDriver(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location))) //using (var driver = new ChromeDriver("")) { // Go to the specific signup page driver.Navigate().GoToUrl(URI); // Get the page elements var userNameField = driver.FindElementByName("name"); var userPasswordField = driver.FindElementByName("email"); var loginButton = driver.FindElementByXPath("//button[@type='submit'][text()='Make Reservation']"); // Type user name and password userNameField.SendKeys(firstName + " " + lastName); userPasswordField.SendKeys(email); //check the time and wait until 07:00:00:01 //Helper h = new Helper(); //h.GetTime(); // Click the login button loginButton.Click(); //System.Threading.Thread.Sleep(250); // Grab all the text within the body tag and re-try the login int x = 1; while (driver.FindElementByTagName("body").Text.Contains("Reservations may not be made until 24 hours prior to the start time of the class.") & (x <= 15000)) { //It's too early to signup, so go back to form and try again driver.Navigate().Back(); //System.Threading.Thread.Sleep(250); x++; //form will be populated w the previous name and email values...re-submit driver.FindElementByXPath("//button[@type='submit'][text()='Make Reservation']").Click(); } // Extract the text and save it into result.txt //var result = driver.FindElementByXPath("//div[@id='case_login']/h3").Text; //File.WriteAllText("result.txt", result); // Take a screenshot and save it into screen.png driver.GetScreenshot().SaveAsFile(firstName + ".png", OpenQA.Selenium.ScreenshotImageFormat.Png); //driver.GetScreenshot().SaveAsFile(@"D:\repo\dotnetCoreHockeySignUp\HockeySignUpCore\bin\Debug\netcoreapp2.1\SPF.png", OpenQA.Selenium.ScreenshotImageFormat.Png); driver.Close(); } }
private void ZoomOut() { /* * Actions action = new Actions(driver); * for (int i = 0; i < 6; i++) * { * action.SendKeys(OpenQA.Selenium.Keys.Control).SendKeys(OpenQA.Selenium.Keys.Subtract).Perform(); * } */ //((IJavaScriptExecutor)driver).ExecuteScript("document.body.style.zoom = '30%';"); IWebElement html = driver.FindElementByTagName("html"); new Actions(driver) .SendKeys(OpenQA.Selenium.Keys.Control).SendKeys(OpenQA.Selenium.Keys.Subtract).SendKeys(OpenQA.Selenium.Keys.Null) .Perform(); }
public UGTab GetTab(UGSearchResult searchResult) { string tab; if (!searchResult.canStoreContent) { tab = "Cannot store in text format, see: " + searchResult.href; } else { this.browser.Navigate().GoToUrl(searchResult.href); tab = browser.FindElementByTagName("code").Text; } return(new UGTab(searchResult.artist, searchResult.songAndVer, searchResult.rating, searchResult.numRatings, tab)); }
public void PElementIsRemovedFromPrivacyPage() { // Create server with SeleniumServer and startPoint is Startup var serverFactory = new SeleniumServerFactory <Startup>(); // Create options for Chrome and create virtual Web Browser var options = new ChromeOptions(); options.AcceptInsecureCertificates = true; options.AddArguments("--headless"); var webDriver = new ChromeDriver(options); // Open the address /Home/Privacy on our server (our app) webDriver.Navigate().GoToUrl(serverFactory.RootUri + "/Home/Privacy"); // Find <p>some text</p> element and throw and exception if its not visible. // The check will be done after all scripts on the page are loaded Assert.Throws <NoSuchElementException>(() => webDriver.FindElementByTagName("p")); }
static void Main(string[] args) { var options = new ChromeOptions(); options.AddArguments("--disable-gpu"); options.AddArguments("disable-popup-blocking"); var chromeDriver = new ChromeDriver("C:\\Users\\klync\\Source\\Repos\\XPathTest\\XPathTest", options); chromeDriver.Navigate().GoToUrl("https://login.yahoo.com/"); chromeDriver.Manage().Window.Maximize(); chromeDriver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10); chromeDriver.FindElement(By.Id("login-username")).SendKeys("" + Keys.Enter); chromeDriver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10); chromeDriver.FindElement(By.Id("login-passwd")).SendKeys("" + Keys.Enter); chromeDriver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10); chromeDriver.Url = ("https://finance.yahoo.com/portfolio/p_0/view/v1"); IWebElement list = chromeDriver.FindElementByTagName("tbody"); System.Collections.ObjectModel.ReadOnlyCollection <IWebElement> stocks = list.FindElements(By.TagName("tr")); int count = stocks.Count(); //Console.WriteLine("Info on stocks in Katelynn's Portfolio: " + stocks.Count); for (int i = 1; i <= count; i++) { chromeDriver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10); var symbol = chromeDriver.FindElementByXPath("//*[@id=\"pf-detail-table\"]/div[1]/table/tbody/tr[" + i + "]/td[1]").GetAttribute("innerText"); Console.WriteLine(symbol); } Console.WriteLine("\n"); chromeDriver.Close(); }
public static void FillAndSubmitAForm() { ChromeDriver driver = new ChromeDriver(); driver.Navigate().GoToUrl("http://regularcoder.com/demo/selenium-ide-test/"); IWebElement movieTitleTextBox = driver.FindElementById("title"); movieTitleTextBox.SendKeys("VICE"); IWebElement movieCreatedAtTextBox = driver.FindElementById("year"); movieCreatedAtTextBox.SendKeys("2018"); IWebElement movieDirectorTextBox = driver.FindElementById("director"); movieDirectorTextBox.SendKeys("Tarantonto"); IWebElement movieDescriptionTextBox = driver.FindElementById("description"); movieDescriptionTextBox.SendKeys("Great movie"); IWebElement submitButton = driver.FindElementByTagName("button"); submitButton.Click(); }
public void Test1() { var currentDirectory = Directory.GetCurrentDirectory(); var driver = new ChromeDriver(currentDirectory); driver.Navigate().GoToUrl("https:/localhost:44305"); driver.FindElement(By.CssSelector("a[href='/counter']")).Click(); Assert.Equal("Counter", driver.FindElementByTagName("h1").Text); driver.FindElementById("increment-button").Click(); driver.FindElementById("increment-button").Click(); driver.FindElementById("increment-button").Click(); driver.FindElementById("increment-button").Click(); driver.FindElementById("increment-button").Click(); Assert.Equal("5", driver.FindElement(By.TagName("strong")).Text); driver.Close(); driver.Dispose(); }
public void CheckPage() { // if (!welcome && driver.FindElementsByCssSelector("div[data-test-id='nux_name_done_btn']").Count != 0) { try { driver.FindElementByCssSelector("div[data-test-id='nux_name_done_btn']").Click(); Console.WriteLine("press next"); welcome = true; return; } catch { return; } } if (!skip && driver.FindElementsByCssSelector("button[data-test-id='nux-ext-skip-btn']").Count != 0) { try { driver.FindElementByCssSelector("button[data-test-id='nux-ext-skip-btn']").Click(); Console.WriteLine("press skip"); skip = true; return; } catch { return; } } //if (welcome && !gender && driver.FindElementsByCssSelector(".NuxGenderStep__headerContent").Count == 1) //{ // var buttons = driver.FindElementsByTagName("button"); // foreach (var item in buttons) // { // if (item.Text.ToLower().Contains("female")) // { // item.Click(); // } // } // //Female //} if (!gender && driver.FindElementsByCssSelector("label[for='female']").Count > 0) { try { var x = driver.FindElementsByCssSelector("label[for='female']"); x[0].Click(); gender = true; return; } catch { return; } } if (!country && driver.FindElementById("newUserCountry") != null) { try { driver.FindElementByCssSelector(".NuxContainer__NuxStepContainer button").Click(); country = true; return; } catch { } try { driver.FindElementByCssSelector("div[data-test-id=nux-locale-country-next-btn]").Click(); country = true; return; } catch { } } if (!country && driver.FindElementByCssSelector(".NuxContainer__NuxStepContainer button") != null) { try { driver.FindElementByCssSelector(".NuxContainer__NuxStepContainer button").Click(); country = true; return; } catch { return; } } if (!card && driver.FindElementsByCssSelector("[aria-label='Interest card']").Count > 1) { int result = 0; Save(); var cards = driver.FindElementsByCssSelector("[aria-label='Interest card']"); for (int i = 0; i < 100; i++) { if (result > 5) { var button = driver.FindElementsByCssSelector("[data-test-id='nux-picker-done-btn'] button"); if (button.Count > 0) { button[0].Click(); card = true; break; } button = driver.FindElementsByCssSelector("button[type='submit']"); if (button.Count > 0) { button[0].Click(); card = true; break; } } try { OpenQA.Selenium.Interactions.Actions action = new OpenQA.Selenium.Interactions.Actions(driver); // action.MoveToElement(cards[i]).DoubleClick().Build().Perform(); action.MoveToElement(cards[i]).DoubleClick().Build().Perform(); // WebElement we = webdriver.findElement(By.xpath("html/body/div[13]/ul/li[4]/a")); // action.moveToElement(we).moveToElement(webdriver.findElement(By.xpath("/expression-here"))).click().build().perform(); //} //cards[i].Click(); result++; } catch (Exception ex) { Console.WriteLine(ex.Message); cards = driver.FindElementsByCssSelector(".NuxInterest"); //return; } // return; } } if (!scip && card && driver.FindElementsByCssSelector(".NuxExtensionUpsell__optionalSkip").Count != 0) { try { var scripButton = driver.FindElementsByCssSelector(".NuxExtensionUpsell__optionalSkip"); scripButton[0].Click(); scip = true; return; } catch { return; } } if (card && !main) { try { var body = driver.FindElementsByCssSelector(".mainContainer"); //if(body.Count > 0) body[0].Click(); Thread.Sleep(TimeSpan.FromSeconds(15)); var buttons = driver.FindElementsByTagName("button"); foreach (IWebElement button in buttons) { Console.WriteLine(button.Text); if (button.Text.Contains("Got")) { OpenQA.Selenium.Interactions.Actions action = new OpenQA.Selenium.Interactions.Actions(driver); action.MoveToElement(button).DoubleClick().Build().Perform(); } } Thread.Sleep(TimeSpan.FromSeconds(5)); driver.FindElementByTagName("body").Click(); driver.Url = "https://www.pinterest.com/"; Thread.Sleep(TimeSpan.FromSeconds(15)); main = true; return; } catch { return; } } if (main && !url) { try { Thread.Sleep(TimeSpan.FromSeconds(5)); if (driver.Url.EndsWith("/settings/")) { url = true; } driver.Url = "https://pinterest.com/settings"; } catch { } } if (url && !settings) { try { for (int i = 0; i < 50; i++) { driver.FindElementById("first_name").SendKeys(Keys.Backspace); driver.FindElementById("last_name").SendKeys(Keys.Backspace); driver.FindElementById("username").SendKeys(Keys.Backspace); } //var selectElement = new SelectElement(driver.FindElementById("accountBasicsCountry")); //selectElement.SelectByValue("US"); driver.FindElementById("first_name").SendKeys(PrettyName()); driver.FindElementById("last_name").SendKeys(PrettyName()); string[] cities = File.ReadAllLines("city_names.txt"); driver.FindElementById("location").SendKeys(cities[new Random().Next(0, cities.Count())]); string userName = prettyName + new Random().Next(); driver.FindElementById("username").SendKeys(userName); // string userName = driver.FindElementById("userUserName").GetAttribute("value"); //malmopianoilianaruby SaveSettings(); settings = true; //$$("input[type=file]") Thread.Sleep(new TimeSpan(0, 0, 5)); driver.Quit(); //data-test-id="createBoardCard" // tut driver.Url = "https://pinterest.com/" + userName + "/boards"; Thread.Sleep(new TimeSpan(0, 0, 5)); var createBoards = driver.FindElementsByCssSelector("[data-test-id=createBoardCard]"); Thread.Sleep(new TimeSpan(0, 0, 5)); foreach (var item in createBoards) { if (item.Enabled && item.Displayed) { item.Click(); } } var input = driver.FindElementById("boardEditName"); input.SendKeys(prettyName); var buttonsCreate = driver.FindElementsByTagName("button"); foreach (var item in buttonsCreate) { if (item.Text.Contains("Create") && item.Enabled && item.Displayed) { item.Click(); Thread.Sleep(new TimeSpan(0, 0, 15)); AddImage(); } } } catch { } } }
/// <summary> /// Given a list of terms, take a snapshot /// of the Google Trends line graph. /// </summary> /// <returns>(Filename, Success)</returns> public static (string, bool) TakeSnapshot(List <string> searchTerms, Options options) { // Ensure chromedriver.exe can be found. var chromeDriverDir = Path.GetFullPath(options.ChromeDriverDirectory); if (!File.Exists(chromeDriverDir + "\\chromedriver.exe")) { Console.WriteLine(">>> chromedriver.exe NOT FOUND"); Console.WriteLine(">>> " + chromeDriverDir); return(null, false); } // Set ChromeDriver options. var chromeOptions = new ChromeOptions(); if (options.Headless) { chromeOptions.AddArgument("--headless"); } chromeOptions.AddArgument("--window-size=" + options.WindowSize); chromeOptions.AddArgument("--log-level=3"); chromeOptions.AddArgument("--disable-extensions"); var service = ChromeDriverService.CreateDefaultService(chromeDriverDir); service.SuppressInitialDiagnosticInformation = true; service.EnableVerboseLogging = false; service.HideCommandPromptWindow = true; // Launch ChromeDriver string filename; using (var driver = new ChromeDriver(service, chromeOptions)) { try { // 0. (Implicit) Open ChromeDriver. Console.WriteLine("> Opened ChromeDriver"); // 1. Navigate to Google Trends page. driver.Navigate().GoToUrl(options.GoogleTrendsUrl); Console.WriteLine("> Navigated to {0}", options.GoogleTrendsUrl); // 2. Enter list of terms into search bar. var searchBar = driver.FindElementByCssSelector("search input"); // @Hardcoded var searchInput = String.Join(", ", searchTerms); searchBar.SendKeys(searchInput); searchBar.SendKeys(Keys.Enter); Console.WriteLine("> Entered terms: {0}", searchInput); // 3. Setup snapshot (hover over most recent results). var header = driver.FindElementByClassName("explorepage-content-header"); // @Hardcoded var headerLocation = header.Location; var graph = driver.FindElementByTagName("widget"); // @Hardcoded var graphLocation = graph.Location; var graphSize = graph.Size; var lineChart = driver.FindElementByCssSelector("line-chart-directive svg"); // @Hardcoded var hoverAction = new Actions(driver); hoverAction.MoveToElement( lineChart, (int)Math.Round(lineChart.Size.Width * 0.98f), // @Hardcoded: Adjust for tiny bit of padding. (int)Math.Round(lineChart.Size.Height / 2f)); hoverAction.Perform(); Console.WriteLine("> Setup trends graph."); // 4. Take snapshot. var snapshot = (driver as ITakesScreenshot).GetScreenshot(); Console.WriteLine("> Took snapshot."); // 5. Crop snapshot, include header and graph. var rect = new Rectangle( x: graphLocation.X, y: headerLocation.Y, width: graphSize.Width, height: (graphLocation.Y + graphSize.Height) - headerLocation.Y ); var originalSnapshot = Image.FromStream(new MemoryStream(snapshot.AsByteArray)); var croppedSnapshot = (originalSnapshot as Bitmap).Clone(rect, originalSnapshot.PixelFormat); Console.WriteLine("> Cropped snapshot."); // 6. Save file. filename = GetSnapshotPath(options.SnapshotDirectory, "png"); croppedSnapshot.Save(filename, ImageFormat.Png); Console.WriteLine("> Saved snapshot - {0}", filename); } catch (Exception e) { Console.WriteLine("\n>>> {0}\n", e.Message); return(null, false); } } // No problems, return success. return(filename, true); }
/// <summary> /// Navigates browser to Radio search page. Verifies FOPS login via URL check. /// Attmepts login if not already there. Redirects back to Radio page if not logged in. /// </summary> /// <param name="browser"></param> /// <returns type='string'></returns> public string GetRadioIP(ChromeDriver browser, string customerNumber) { Console.WriteLine("Searching for Radio..."); var GetRadio = new Radio(); string Radio_Info = ""; try { browser.Navigate().GoToUrl(FOPS_HomeUrl + FOPS_RadioUrl); } catch (TimeoutException e) { Console.WriteLine($"Timed out getting to SU Config...ref:\n{e.ToString()}"); return(Radio_Info); } catch (Exception e) { return(Radio_Info = $"Some other error: {e.ToString()}"); } if (browser.Url.ToString().Contains(FOPS_LoginUrl) == true) { FOPS_Login(browser, FOPS_HomeUrl + FOPS_RadioUrl); } try { var custNumber = browser.FindElementByName("customer_number"); var RadioForm = browser.FindElementsByName("B1"); //var RadioForm = browser.FindElementByXPath(@"//*[@id='div_3_contents']/form"); custNumber.SendKeys(customerNumber); RadioForm[2].Submit(); Console.WriteLine(browser.Url); //Radio IP should always be first item in td for given table...will need to handle if multiple radios are presented. //again need to test via ping if radio is up or not. //need to determine radio type via webpage DOM var RadioTable = browser.FindElementByTagName("td"); Console.WriteLine($"Found Radio IP: {RadioTable.Text}"); //created to avoid stale refrence exception on later call. string radioIP = RadioTable.Text; //Uri RadioIP = RadioTable.Text; //logic to ping radio goes here. if (RadioTable.Text.Contains("Nothing")) { return(Radio_Info += "No IP found for radio"); } browser.Navigate().GoToUrl($"http://{RadioTable.Text}"); Console.WriteLine(browser.Url); //go to ping/crawl radio. Radio_Info += PingTest.PingBuilder(browser, "radio", radioIP); return(Radio_Info); } catch (Exception e) { return(Radio_Info = $"error: {e.ToString()}"); } }
private void btnBuscar_Click(object sender, EventArgs e) { MaskedTextBox mask = new MaskedTextBox(); int ncm; if (!int.TryParse(txtNcm.Text, out ncm) && ncm == null) { MessageBox.Show("somente numeros são aceitos no campo NCM"); return; } int i; if (!int.TryParse(txtncm2.Text, out i) && i == null) { MessageBox.Show("somente numeros são aceitos para complementar ncm"); return; } dataGridViewResultados.Rows.Clear(); while (boxEstado.SelectedIndex <= 30) { try { //abri o browser com selenium _______________________________________________________________ ChromeOptions options = new ChromeOptions(); options.AddArgument("--headless"); ChromeDriverService service = ChromeDriverService.CreateDefaultService(); service.HideCommandPromptWindow = true; //adicionar o service e option para não mostra o prompt e nem browser _____________________________________________________ ChromeDriver driver = new ChromeDriver(service, options); driver.Navigate().GoToUrl("http://www.econeteditora.com.br/icms_st/index.php?form%5Buf%5D=" + boxEstado.Text + "&form%5Bncm%5D=" + txtNcm.Text + "&form%5Bcest%5D=" + txtCest1.Text + "&form%5Bpalavra%5D=&acao=Buscar"); var clicar = driver.FindElement(By.TagName("input")); clicar.Click(); //LOGIM_______________________________________________________________________________ string login = ""; string senha = ""; var userInput = driver.FindElementByName("Log"); userInput.SendKeys(login); var passwordInput = driver.FindElementByName("Sen"); passwordInput.SendKeys(senha + Keys.Enter); driver.Navigate().GoToUrl("http://www.econeteditora.com.br/icms_st/index.php?form%5Buf%5D=" + boxEstado.Text + "&form%5Bncm%5D=" + txtNcm.Text + "&form%5Bcest%5D=" + txtCest1.Text + "&form%5Bpalavra%5D=&acao=Buscar"); //A BUSCA NCM ____________________________________________________________________________ if (i == 00 || i == null) { var Primerabusca = driver.FindElementByTagName("input"); Primerabusca.Click(); } else if (i > 00 && i <= 90) { var segundabusca = driver.FindElementByXPath("/html/body/table[3]/tbody/tr[3]/td[3]/input[1]"); segundabusca.Click(); } else if (i > 90 && i <= 9010) { var terceirabusca = driver.FindElementByXPath("/html/body/table[3]/tbody/tr[7]/td[3]/input[1]"); terceirabusca.Click(); } else { var quartabusca = driver.FindElementByXPath("/html/body/table[3]/tbody/tr[8]/td[3]/input[1]"); quartabusca.Click(); } #region PEGAR OS DADOS DA PAGINA ATUAL PELO XPATH tit= titulo //PEGAR OS DADOS DA PAGINA ATUAL PELO XPATH tit= titulo _________________________________________________________ var tit = ""; try { tit = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[1]/td[1]").Text; } catch { tit = "não existe"; } //----------- var mvaO = ""; try { mvaO = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[2]/td[1]").Text; } catch { mvaO = "não existe"; } //------------ var tit1 = ""; try { tit1 = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[1]/td[2]").Text; } catch { tit1 = "não existe"; } //-------- var mva4 = ""; try { mva4 = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[2]/td[2]").Text; } catch { mva4 = "não existe"; } //-------- var tit2 = ""; try { tit2 = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[1]/td[3]").Text; } catch { tit2 = "não existe"; } //------------ var mva7 = ""; try { mva7 = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[2]/td[3]").Text; } catch { mva7 = "não existe"; } //---------- var tit3 = ""; try { tit3 = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[1]/td[4]").Text; } catch { tit3 = "não existe"; } //-------- var mva12 = ""; try { mva12 = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[2]/td[4]").Text; } catch { mva12 = "não existe"; } //------- var tit4 = ""; try { tit4 = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[1]/td[5]").Text; } catch { tit4 = "não existe"; } //------- var aliq = ""; try { aliq = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[2]/td[5]").Text; } catch { aliq = "não existe"; } //----- var tit5 = ""; try { tit5 = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[1]/td[6]").Text; } catch { tit5 = "não existe"; } //---------- var fecp = ""; try { fecp = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[2]/td[6]").Text; } catch { fecp = "não existe"; } //CASO HOUVER UMA SEGUNDA LINHA ADICIONAR AQUI______________________________________________________________________ var T1 = ""; try { T1 = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[3]/td[1]").Text; } catch { T1 = ""; } var T2 = ""; try { T2 = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[3]/td[2]").Text; } catch { T2 = ""; } var T3 = ""; try { T3 = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[3]/td[3]").Text; } catch { T3 = ""; } var T4 = ""; try { T4 = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[3]/td[4]").Text; } catch { T4 = ""; } var T5 = ""; try { T5 = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[3]/td[5]").Text; } catch { T5 = ""; } var T6 = ""; try { T6 = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[3]/td[6]").Text; } catch { T6 = ""; } // 3 LINHA TABELA SE EXISTIR ___________________________________________________________________________ var C1 = ""; try { C1 = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[4]/td[1]").Text; } catch { C1 = ""; } var C2 = ""; try { C2 = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[4]/td[2]").Text; } catch { C2 = ""; } var C3 = ""; try { C3 = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[4]/td[3]").Text; } catch { C3 = ""; } var C4 = ""; try { C4 = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[4]/td[4]").Text; } catch { C4 = ""; } var C5 = ""; try { C5 = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[4]/td[5]").Text; } catch { C5 = ""; } var C6 = ""; try { C6 = driver.FindElementByXPath("//*[@id=\"TabbedPanels1\"]/div/div[1]/table[3]/tbody/tr[4]/td[6]").Text; } catch { C6 = ""; } #endregion //Limpar e Adicionar valores na tabela__________________________________________________________________________________________________ //dataGridViewResultados.Rows.Clear(); dataGridViewResultados.Rows.Add(boxEstado.Text, tit, tit1, tit2, tit3, tit4, tit5); // dataGridViewResultados.DefaultCellStyle.BackColor = Color.Cyan; dataGridViewResultados.Rows.Add(boxEstado.Text, mvaO, mva4, mva7, mva12, aliq, fecp); dataGridViewResultados.Rows.Add(boxEstado.Text, T1, T2, T3, T4, T5, T6); dataGridViewResultados.Rows.Add(boxEstado.Text, C1, C2, C3, C4, C5, C6); driver.Close(); driver.Quit(); } catch { MessageBox.Show("É preciso colocar NCM ou CEst "); } if ((boxEstado.SelectedIndex % 3) == 0 || boxEstado.Text == "TO") { break; return; } else { boxEstado.SelectedIndex++; } } // limpar a caixa txtCest1.Clear(); txtNcm.Clear(); txtncm2.Clear(); txtncm2.Text = "00"; MessageBox.Show("Pesquisa concluida"); }
public List <Stock> Scrape() { // Add --headless to options var options = new ChromeOptions(); options.AddArguments("--headless"); options.AddArguments("--disable-gpu"); options.AddArguments("disable-popup-blocking"); // Initial new ChromeDriver and navigate to Yahoo URL var chromeDriver = new ChromeDriver("C:\\Users\\Sreenath\\source\\repos\\WebScraperwithASP_NET", options); chromeDriver.Navigate().GoToUrl("https://login.yahoo.com"); chromeDriver.Manage().Window.Maximize(); chromeDriver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10); // Input username and click on Next chromeDriver.FindElementById("login-username").SendKeys("*****@*****.**"); chromeDriver.FindElementById("login-signin").Click(); // Input password and click on submit chromeDriver.FindElementById("login-passwd").SendKeys("Careerdevs"); chromeDriver.FindElementById("login-signin").Click(); // After password verification navigate to Yahoo portfolio page //chromeDriver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10); chromeDriver.Url = "https://finance.yahoo.com/portfolio/p_0/view/v1"; //var closePopup = chromeDriver.FindElementByXPath("//dialog[@id = '__dialog']/section/button"); //closePopup.Click(); //var stocks = chromeDriver.FindElements(By.XPath("//*[@id=\"main\"]/section/section[2]/div[2]/table/tbody/tr[*]/td[*]")); //foreach (var stock in stocks) // Console.WriteLine(stock.Text); IWebElement list = chromeDriver.FindElementByTagName("tbody"); System.Collections.ObjectModel.ReadOnlyCollection <IWebElement> stocks = list.FindElements(By.TagName("tr")); int count = stocks.Count(); List <Stock> stockList = new List <Stock>(); for (int i = 1; i <= count; i++) { var symbol = chromeDriver.FindElementByXPath("//*[@id=\"main\"]/section/section[2]/div[2]/table/tbody/tr[" + i + "]/td[1]/span/a").GetAttribute("innerText"); var lastPrice = chromeDriver.FindElementByXPath("//*[@id=\"main\"]/section/section[2]/div[2]/table/tbody/tr[" + i + "]/td[2]/span").GetAttribute("innerText"); var change = chromeDriver.FindElementByXPath("//*[@id=\"main\"]/section/section[2]/div[2]/table/tbody/tr[" + i + "]/td[3]/span").GetAttribute("innerText"); var percentChange = chromeDriver.FindElementByXPath("//*[@id=\"main\"]/section/section[2]/div[2]/table/tbody/tr[" + i + "]/td[4]/span").GetAttribute("innerText"); var currency = chromeDriver.FindElementByXPath("//*[@id=\"main\"]/section/section[2]/div[2]/table/tbody/tr[" + i + "]/td[5]").GetAttribute("innerText"); var marketCap = chromeDriver.FindElementByXPath("//*[@id=\"main\"]/section/section[2]/div[2]/table/tbody/tr[" + i + "]/td[13]/span").GetAttribute("innerText"); Stock stock = new Stock(); stock.Symbol = symbol; stock.LastPrice = lastPrice; stock.Change = change; stock.PercentChange = percentChange; stock.Currency = currency; stock.MarketCap = marketCap; stockList.Add(stock); } chromeDriver.Quit(); return(stockList); }
static void Main(string[] args) { var options = new ChromeOptions(); //options.AddArgument("--headless"); options.AddArguments("--disable-gpu"); options.AddArguments("disable-popup-blocking");//to disable pop-up blocking var chromeDriver = new ChromeDriver(options); chromeDriver.Navigate().GoToUrl("https://login.yahoo.com/"); Console.WriteLine("In Yahoo home page"); chromeDriver.Manage().Window.Maximize(); chromeDriver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10); chromeDriver.FindElementById("login-username").SendKeys("*****@*****.**"); chromeDriver.FindElementById("login-signin").Click(); chromeDriver.FindElementById("login-passwd").SendKeys("@nuk1978"); chromeDriver.FindElementById("login-signin").Click(); chromeDriver.Url = "https://finance.yahoo.com/portfolio/p_1/view/v1"; Console.WriteLine("In yahoo finance page"); /* * * var closePopup = chromeDriver.FindElementByXPath("//dialog[@id = '__dialog']/section/button"); * closePopup.Click(); * var items = chromeDriver.FindElementsByXPath("//*[@id=\"main\"]/section/section[2]/div[2]/table/tbody/tr[*]/td[*]"); * * foreach(var item in items) * { * Console.WriteLine("My WatchList: " + item.Text); * } */ //var closePopup = chromeDriver.FindElementByXPath("//*[@id=\"fin - tradeit\"]/div[2]/div"); var closePopup = chromeDriver.FindElementByXPath("//dialog[@id = '__dialog']/section/button"); closePopup.Click(); //var items = chromeDriver.FindElementsByXPath("//*[@id=\"main\"]/section/section[2]/div[2]/table/tbody/tr[*]/td[*]/span/a").GetAttribute; IWebElement list = chromeDriver.FindElementByTagName("tbody"); System.Collections.ObjectModel.ReadOnlyCollection <IWebElement> items = list.FindElements(By.TagName("tr")); int count = items.Count(); List <Stock> result = new List <Stock>(); Console.WriteLine(count); //loop to get details of each stock symbol for (int i = 1; i <= count; i++) { Console.WriteLine(i); var symbol = chromeDriver.FindElementByXPath("//*[@id=\"main\"]/section/section[2]/div[2]/table/tbody/tr[" + i + "]/td[1]/span/a").GetAttribute("innerText"); var lastprice = chromeDriver.FindElementByXPath("//*[@id=\"main\"]/section/section[2]/div[2]/table/tbody/tr[" + i + "]/td[2]/span").GetAttribute("innerText"); var change = chromeDriver.FindElementByXPath("//*[@id=\"main\"]/section/section[2]/div[2]/table/tbody/tr[" + i + "]/td[3]/span").GetAttribute("innerText"); var percentChange = chromeDriver.FindElementByXPath("//*[@id=\"main\"]/section/section[2]/div[2]/table/tbody/tr[" + i + "]/td[4]/span").GetAttribute("innerText"); var currency = chromeDriver.FindElementByXPath("//*[@id=\"main\"]/section/section[2]/div[2]/table/tbody/tr[" + i + "]/td[5]").GetAttribute("innerText"); var avgVolume = chromeDriver.FindElementByXPath("//*[@id=\"main\"]/section/section[2]/div[2]/table/tbody/tr[" + i + "]/td[9]").GetAttribute("innerText"); var marketCap = chromeDriver.FindElementByXPath("//*[@id=\"main\"]/section/section[2]/div[2]/table/tbody/tr[" + i + "]/td[13]/span").GetAttribute("innerText"); Stock stock = new Stock(); Console.WriteLine(symbol); stock.Symbol = symbol; Console.WriteLine(lastprice); stock.Price = Decimal.Parse(lastprice); Console.WriteLine(change); stock.Change = Decimal.Parse(change); Console.WriteLine(percentChange); stock.PercentChange = Decimal.Parse(percentChange.Trim('%')); Console.WriteLine(currency); stock.Currency = currency; Console.WriteLine(avgVolume); stock.AverageVolume = avgVolume; Console.WriteLine(marketCap); stock.MarketCap = marketCap; //result.Add(stock); //chromeDriver.Close(); } }