Seleniumの使い方

Seleniumについて

Seleniumはオープンソースのフレームワークです。
Webアプリケーションの動作テストの自動化を目的として作成されたものですが、 自動操作としても使うことができます。
アプリケーション開発で使用することで、ブラウザの操作プログラムを簡単に作成することができます。

入手方法

Seleniumのサイトよりダウンロードします。

「Selenium Client & WebDriver Language Bindings」の場所から、使用する言語のプログラムをダウンロードしてください。
ここではC#をダウンロードします。VB.NETの場合もこれをダウンロードします。
Selenium Client & WebDriver Language Bindings : Language C#
「selenium-dotnet-x.x.x.zip」がダウンロードされます。

次に、操作するブラウザのプログラム(Driver)をダウンロードします。
InternetExplorerの場合は「The Internet Explorer Driver Server」からダウンロードします。
お使いのCPUにあわせて32bit版か64bit版を選びます。
The Internet Explorer Driver Server
「IEDriverServer_x64_x.x.x.zip」か「IEDriverServer_x32_x.x.x.zip」がダウンロードされます。

InternetExplorer以外のブラウザを操作する場合は、対応するプログラム(Driver)を「Third Party Drivers, Bindings, and Plugins」からダウンロードします。
Third Party Drivers, Bindings, and Plugins
Chromeを操作する場合は「Google Chrome Driver」の「latest」のリンクをクリックし、開かれたGoogleのサイトをたどってダウンロードします。 「chromedriver_win32.zip」がダウンロードされます。ファイル名が"wind32"となっていますが、64bit版のChromeもこれで操作できます。
FireFoxを操作する場合は「Mozilla GeckoDriver」の「latest」のリンクをクリックし、開かれたMozillaのサイトをたどってダウンロードします。 「geckodriver-vx.x.x-win32.zip」「geckodriver-vx.x.x-win64.zip」がダウンロードされます。

プログラムへの組み込み

ダウンロードした「selenium-dotnet-x.x.x.zip」を解凍すると、「dist」フォルダ内に 「Selenium.WebDriver.x.x.x.nupkg」がありますので、拡張子を"zip"に変更して再度解凍します。 解凍後の「lib」フォルダに.NETのバージョンごとにフォルダが作成されています。 開発で使用する.NETのバージョンのフォルダにある「WebDriver.dll」を使用します。
VisualStudioの参照設定で「WebDriver.dll」を追加します。

これ以降は操作するブラウザによって必要なファイルが異なります。

プログラムへの組み込み(IEの場合)

「IEDriverServer_x64_x.x.x.zip」または「IEDriverServer_x32_x.x.x.zip」を解凍後に作成される「IEDriverServer.exe」を、 プログラムのexeと一緒のフォルダに格納します。

以下、WindowsFormアプリケーションでのコードサンプルです。
Formにボタンを貼り付けて、以下コードを書いてください。
ボタンをクリックするとブラウザ(InternetExplorer)が立ち上がり、Yahooのサイトが表示されます。

							Imports OpenQA.Selenium
							Imports OpenQA.Selenium.IE
							
							Public Class Form1
							
								Private _browser As IWebDriver
							
								Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
							
									_browser = New IE.InternetExplorerDriver()
									_browser.Url = "https://www.yahoo.co.jp"
							
								End Sub
							
							End Class
					
						using OpenQA.Selenium;
						using OpenQA.Selenium.IE;
						
						public class Form1
						{
							private IWebDriver _browser;
						
							private void Button1_Click(object sender, EventArgs e)
							{
								_browser = new IE.InternetExplorerDriver();
								_browser.Url = "https://www.yahoo.co.jp";
							}
						}
						
					

プログラムへの組み込み(Chromeの場合)

「chromedriver_win32.zip」を解凍後に作成される「chromedriver.exe」を、 プログラムのexeと一緒のフォルダに格納します。

以下、WindowsFormアプリケーションでのコードサンプルです。
Formにボタンを貼り付けて、以下コードを書いてください。
ボタンをクリックするとブラウザ(Chrome)が立ち上がり、Yahooのサイトが表示されます。

							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
							
									_browser = New ChromeDriver()
									_browser.Url = "https://www.yahoo.co.jp"
							
								End Sub
							
							End Class
					
						using OpenQA.Selenium;
						using OpenQA.Selenium.Chrome;
						
						public class Form1
						{
							private IWebDriver _browser;
						
							private void Button1_Click(object sender, EventArgs e)
							{
								_browser = new ChromeDriver();
								_browser.Url = "https://www.yahoo.co.jp";
							}
						}
						
					

プログラムへの組み込み(FireFoxの場合)

「geckodriver-vx.x.x-win64.zip」または「geckodriver-vx.x.x-win32.zip」を解凍後に作成される「geckodriver.exe」を、 プログラムのexeと一緒のフォルダに格納します。

以下、WindowsFormアプリケーションでのコードサンプルです。
Formにボタンを貼り付けて、以下コードを書いてください。
ボタンをクリックするとブラウザ(FireFox)が立ち上がり、Yahooのサイトが表示されます。

							Imports OpenQA.Selenium
							Imports OpenQA.Selenium.Firefox
							
							Public Class Form1
							
								Private _browser As IWebDriver
							
								Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
							
									_browser = New FirefoxDriver()
									_browser.Url = "https://www.yahoo.co.jp"
							
								End Sub
							
							End Class
					
						using OpenQA.Selenium;
						using OpenQA.Selenium.Firefox;
						
						public class Form1
						{
							private IWebDriver _browser;
						
							private void Button1_Click(object sender, EventArgs e)
							{
								_browser = new FirefoxDriver();
								_browser.Url = "https://www.yahoo.co.jp";
							}
						}