Selenium WebDriverの準備
インストール方法
ここでは、使用言語→VB/C#、操作ブラウザ→Chrome、にする場合の設定について説明します。
(Seleniumのサイトにも詳しいインストール方法が記載されています。)
Excel VBAでSeleniumを使う場合は、インストール方法(Excel VBA)のページを見てください。
VisualStudioでChromeのドライバーをインストールする方法
VisualStudioのNuGetからパッケージをインストールするのが簡単です。
「Selenium.WebDriver」「Selenium.WebDriver.ChromeDriver」をインストールします。
ブラウザの起動
以下のコードを実行すればChromeが起動します。
Imports OpenQA.Selenium Imports OpenQA.Selenium.Chrome Public Class Form1 Private _browser As IWebDriver Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim driver As New ChromeDriver() End Sub End Class
using OpenQA.Selenium; using OpenQA.Selenium.Chrome; public class Form1 { private void Button1_Click(object sender, EventArgs e) { var driver = new ChromeDriver(); } }
※ChromeDriverのバージョンよりChromeブラウザのバージョンが古ければ、実行時に例外が発生します。
その時はChromeを最新にするか、ドライバーのバージョンを下げてください。
参考
Open and close a browser with Selenium
操作サンプルコード
以下のコードで一通りの操作を行えます。
詳しくはSeleniumのサイトを参照してください。
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 'Chromeブラウザを表示 Dim driver As New ChromeDriver() 'Googleのサイトを表示 driver.Navigate().GoToUrl("https://www.google.com") 'サイトのTitleを取得 Console.WriteLine(driver.Title) '' => "Google" '要素が見つかるまで待機 driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromMilliseconds(500) '要素を検索して取得 Dim searchBox = driver.FindElement(By.Name("q")) Dim searchButton = driver.FindElement(By.Name("btnK")) 'テキストの入力 searchBox.SendKeys("Selenium") 'ボタンのクリック searchButton.Click() '要素の値の参照 Console.WriteLine(driver.FindElement(By.Name("q")).GetAttribute("value")) '' => "Selenium" 'ブラウザを終了 driver.Quit() End Sub
private void button2_Click(object sender, EventArgs e) { //Chromeブラウザを表示 var driver = new ChromeDriver(); //Googleのサイトを表示 driver.Navigate().GoToUrl("https://www.google.com"); //サイトのTitleを取得 Console.WriteLine(driver.Title); // => "Google" //要素が見つかるまで待機 driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromMilliseconds(500); //要素を検索して取得 var searchBox = driver.FindElement(By.Name("q")); var searchButton = driver.FindElement(By.Name("btnK")); //テキストの入力 searchBox.SendKeys("Selenium"); //ボタンのクリック searchButton.Click(); //要素の値の参照 Console.WriteLine(driver.FindElement(By.Name("q")).GetAttribute("value")); // => "Selenium" //ブラウザを終了 driver.Quit(); }
from selenium import webdriver from selenium.webdriver.common.by import By #Chromeブラウザを表示(ドライバーのPATHを設定済とする) driver = webdriver.Chrome() #Googleのサイトを表示 driver.get("https://www.google.com") #サイトのTitleを取得 print(driver.title) #要素が見つかるまで待機(明示的な待機) driver.implicitly_wait(0.5) #要素を検索して取得 searchBox = driver.find_element(By.NAME, "q") searchButton = driver.find_element(By.NAME, "btnK") #テキストの入力 searchBox.send_keys("Selenium") #ボタンのクリック searchButton.click() #要素の値の参照 print(driver.find_element(By.NAME, "q").get_attribute("value")) # => "Selenium" #ブラウザを終了 driver.quit()