Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9266

Windows 10 + C# + selenium で headless chrome を試してみる

$
0
0

目的

ChromeをC# + selenium からキックしてみる
OpenQA.Selenium.Support.UI.ExpectedConditions method is now deprecatedに対しては
SeleniumExtras.WaitHelpers.ExpectedConditionsで書き換えて対応してみる
※サイトの作成された時期によって修正の量が違うと思われる・・・・
PythonでのWebDriverWaitは

element=WebDriverWait(driver,10).until(EC.presence_of_element_located((By.TagName,'h3')))

を書き換えると以下になるのかいな??

WebDriverWaitwait=newWebDriverWait(driver,TimeSpan.FromSeconds(10));IWebElementfirstResult=wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementExists(By.TagName("h3")));

追加パッケージ

.NETFramework 4.5でプロジェクトを作成後
プロジェクト -> NuGetパッケージの管理より以下を追加する

Selenium.WebDriver
Selenium.WebDriver.Chrome
DotNetSeleniumExtras.WaitHelpers

サンプルコード

Seleniumブラウザー自動化プロジェクトのCS版を書き換えてみる

usingOpenQA.Selenium;usingOpenQA.Selenium.Chrome;usingOpenQA.Selenium.Support.UI;usingSeleniumExtras.WaitHelpers;privatevoidbtnChrome_Click(objectsender,EventArgse){varoptions=newChromeOptions();options.AddArgument("--headless");IWebDriverdriver=newChromeDriver(options);try{WebDriverWaitwait=newWebDriverWait(driver,TimeSpan.FromSeconds(10));//Webページを開くdriver.Navigate().GoToUrl("https://www.google.co.jp");//検索ボックスに検索ワードを入力IWebElementel=wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementExists(By.Name("q")));driver.FindElement(By.Name("q")).SendKeys("Selenium"+OpenQA.Selenium.Keys.Enter);//検索結果が出たという判定を何にするか?? は仕様依存??IWebElementfirstResult=wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementExists(By.TagName("h3")));//ページソースの出力Console.WriteLine(driver.PageSource);}catch(Exception){Console.WriteLine("Err");}finally{if(driver!=null){driver.Quit();}}}

参考にしたのは以下のサイト

Seleniumブラウザー自動化プロジェクト
C# Selenium 'ExpectedConditions is obsolete'
Selenium Web Driver, ExpectedConditions [deprecated] alternative
seleniumを使ってC#でGoogle Chromeの自動操作をする
【C#】Selenium ChromeDriverを使ってWebスクレイピング


Viewing all articles
Browse latest Browse all 9266

Trending Articles