C#でSeleniumをPhantomJSを使ってヘッドレスで操作する.
概要
C#で各ブラウザを操作する方法を調べる. 特にPhantomJSの動作環境を整える
目的
Twitterを操作する依頼を受けた. 基本はChromeやFirefoxだが、ヘッドレスなPhantomJSの動作環境を作る.
詳細
以下の二つを参考にすすめる.
最強のチートシート: Most Complete Selenium WebDriver C# Cheat Sheet
最強のサンプルコード: AutomateThePlanet-Learning-Series/WebDriver-Series
を参考に進める.とても良い資料になっている
1. 新規プロジェクトを作成
適当なプロジェクトをたちあげる. 今回はユニットテストを立ち上げる.
2. 必要なパッケージの参照を設定
nugetで一つづインストールするのは大変なので, package.configに直接以下を書き込む
<?xml version="1.0" encoding="utf-8"?> <packages> <!--単体テストプロジェクトにデフォルトで入っている項目--> <package id="MSTest.TestAdapter" version="1.2.1" targetFramework="net461" /> <package id="MSTest.TestFramework" version="1.2.1" targetFramework="net461" /> <!--追加した項目--> <package id="Selenium.Firefox.WebDriver" version="0.20.0" targetFramework="net461" /> <package id="Selenium.PhantomJS.WebDriver" version="2.1.1" targetFramework="net461" /> <package id="Selenium.Support" version="3.12.0" targetFramework="net461" /> <package id="Selenium.WebDriver" version="3.12.0" targetFramework="net461" /> <package id="Selenium.WebDriver.ChromeDriver" version="2.38.0.1" targetFramework="net461" /> <package id="Selenium.WebDriver.IEDriver" version="3.12.0" targetFramework="net461" /> <package id="Selenium.WebDriver.MicrosoftWebDriver" version="10.0.17134" targetFramework="net461" /> </packages>
3. 「Nugetパッケージの復元」をする
ソリューションエクスプローラ内の「ソリューション」を右クリックして「Nugetパッケージの復元」を実行
しかしこのままだとまだ参照されていないのが分かる.
以下がパッケージロードのテスト用コード.
これがエラーなくコンパイルできればいいのだが。
このままだと赤線がでてコンパイルできない.
using System; using Microsoft.VisualStudio.TestTools.UnitTesting; // Selenium関連パッケージ using OpenQA.Selenium; using OpenQA.Selenium.Chrome; using OpenQA.Selenium.Edge; using OpenQA.Selenium.Firefox; using OpenQA.Selenium.IE; using OpenQA.Selenium.PhantomJS; using OpenQA.Selenium.Support.Extensions; using OpenQA.Selenium.Support.UI; namespace SeleniumBoilerplate { [TestClass] public class BrowserTest { [TestMethod] public void TestChromeDriver() { using (IWebDriver driver = new ChromeDriver()) { } } [TestMethod] public void TestFirefoxDriver() { using (IWebDriver driver = new FirefoxDriver()) { } } [TestMethod] public void TestEdgeDriver() { using (IWebDriver driver = new EdgeDriver()) { } } [TestMethod] public void TestPhantomJSDriver() { using (IWebDriver driver = new PhantomJSDriver()) { } } } }
package.configをPackageRefferenceに移行する
ソリューションエクスプローラの「参照」を右クリックし、「package.configをPackageReferenceに移行する」を実行
すると、参照内のパッケージにpackage.configに記載されたパッケージがかわいいアイコンで現れる
すると先ほどまでパッケージインポートエラーが出ていた、selenium関連のパッケージがインポートできているのが分かるであろう。
テストを実行すると、環境にインストールされているブラウザでテストが合格するだろう. 特に今回はPhantomJSのテストがクリアされていれば、目的達成!
まとめ
C#.NETでSelenium関連パッケージの動作環境を整えた.
特にPhantomJSの動作環境が整った.
Selenium実践入門 ―― 自動化による継続的なブラウザテスト (WEB+DB PRESS plus)
- 作者: 伊藤望,戸田広,沖田邦夫,宮田淳平,長谷川淳,清水直樹,Vishal Banthia
- 出版社/メーカー: 技術評論社
- 発売日: 2016/02/02
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (4件) を見る
この参考書はとてもためになります。 体系的な資料は少ないので一読オススメです。
下のは古いヴァージョンの話です、おすすめしません。
- 作者: Satya Avasarala,Sky株式会社玉川竜司
- 出版社/メーカー: オライリージャパン
- 発売日: 2014/09/18
- メディア: 大型本
- この商品を含むブログ (5件) を見る