乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      C#使用Selenium網(wǎng)頁自動化

       黃金屋1 2019-12-11

      工作中很多時候經(jīng)常需要網(wǎng)抓數(shù)據(jù)或者把數(shù)據(jù)填寫到網(wǎng)站上,使用Selenium將其自動化是一種不錯的選擇。Selenium其實是一個用于Web應用程序測試的工具,測試你的應用程序看是否能夠很好地工作在不同瀏覽器和操作系統(tǒng)之上。它可直接運行在瀏覽器中,就像真正的用戶在操作一樣。支持的瀏覽器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。

      1、在NuGet中下載Selenium.Chrome.WebDriver(v2.45.0)和Selenium.WebDriver(v3.141.0),然后引用using OpenQA.Selenium;和using OpenQA.Selenium.Chrome;

      2、聲明和實例一個ChromeDriver對象

      IWebDriver driver = new ChromeDriver(System.AppDomain.CurrentDomain.BaseDirectory.ToString());

      ChromeDriver總共有8個構造方法,這里我使用的是第4個方法。

      ChromeDriver()、ChromeDriver(ChromeDriverService service)指定初始化ChromeDriver的服務、ChromeDriver(ChromeOptions options)指定ChromeDriver的選項、ChromeDriver(string chromeDriverDirectory)指定ChromeDriver.exe的目錄路徑、ChromeDriver(ChromeDriverService service,ChromeOptions options)、ChromeDriver(string chromeDriverDirectory,ChromeOptions options)、ChromeDriver(ChromeDriverService service,ChromeOptions options,TimeSpan commandTimeOut)指定了命令的等待執(zhí)行時間、ChromeDriver(string chromeDriverDirectory,ChromeOptions options,TimeSpan commandTimeOut)

      ChromeOptions參數(shù)設置可參考https:///experiments/chromium-command-line-switches/https://sites.google.com/a/chromium.org/chromedriver/capabilities,常用的有下面幾個:

      --user-agent=“”  設置請求頭的User-Agent

      --window-size=1366,768  設置瀏覽器窗口大小

      --headless  無界面運行

      --start-maximized  最大化運行

      --incognito  隱身模式

      --disable-javascript  禁用javascript

      --disable-infobars  禁用瀏覽器正在被自動化程序控制的提示

      var option = new ChromeOptions();
      option.AddArgument("--incognito");
      option.AddArgument("headless");
      option.AddArgument("disable-infobars");
      IWebDriver driver = new ChromeDriver(System.AppDomain.CurrentDomain.BaseDirectory.ToString(),option);

       ChromeDriverService參數(shù)比較少用,可以參考https://ask.csdn.net/questions/758189,常用來設置命令行窗口不彈出:

      var cdSvc = ChromeDriverService.CreateDefaultService();
      cdSvc.HideCommandPromptWindow = true;
      IWebDriver driver = new ChromeDriver(cdSvc);

      但是使用了ChromeDriverService參數(shù)就不能指定ChromeDriver的目錄路徑了,很憂傷。

      3、打開網(wǎng)址和設置元素查找時間限制

      driver.Navigate().GoToUrl("http://dcga。。。");
      driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(20);

      4、獲取html元素并進行操作

      driver.FindElement(By.XPath("//button[@class=\"btn try-out__btn\"]")).Click();
      IWebElement tryit;
      tryit = driver.FindElement(By.XPath("//textarea[@class=\"body-param__text\"]"));
      tryit.Clear();
      tryit.SendKeys("{\"docId\":\"111111111\"}");

      如果返回的元素有多個,就得使用collection了,引用using System.Collections.ObjectModel;

      ReadOnlyCollection<IWebElement> coll = driver.FindElements(By.XPath("//*[@id=\"operations-default-post_automation_api_va\"]/div/span[2]/a"));

      5、其他一些可能使用的語句

      driver.Manage().Window.Maximize();//窗口最大化
      System.Threading.Thread.Sleep(1000);//等待1秒
      ReadOnlyCollection<string> windows = driver.WindowHandles;
      driver.SwitchTo().Window(windows[1]);//有新窗口彈出時切換

       

       

       

        本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多