####Chromeで動作させる
- Chromeをインストールする
Nugetからインストール
Install-Package Selenium.WebDriver
Install-Package Selenium.WebDriver.ChromeDriver
using System;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
var chrome = new ChromeDriver(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location));
chrome.Url = "http://google.com/";
//特定のURLを開いて待機する
Console.ReadKey();
chrome.Quit();
}
}
}
####Chrominumで動作させる
- Chromeをアンインストールする
- Chrominumをインストールする
- ChromeDriverをインストールする
ChromeをアンインストールしないとChrominumが立ち上がらないです。
Nugetからインストール
Install-Package Selenium.WebDriver
Install-Package Selenium.WebDriver.ChromeDriver
Chrominumとドライバをインストールする
$ sudo apt-get update
$ sudo apt-get install chromium-browser
$ sudo apt-get install chromium-chromedriver
$ chromium-browser --version
$ chromedriver --version
# 日本語フォントをインストールする
$ sudo apt-get install fonts-ipafont-gothic fonts-ipafont-mincho
chromedriverのインストールされた場所を調べる
$ which chromium-browser
$ which chromedriver
chromedriverは/usr/bin/chromedriverにインストールされます。
C# ChromeDriver関数にパスを指定する。ここでは「/usr/bin/」を指定する
var driver = new ChromeDriver("/usr/bin/");
using System;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Firefox;
namespace SeleniumConsoleApp
{
class Program
{
static void _mkFireFox()
{
IWebDriver driver =new FirefoxDriver(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location));
driver.Navigate().GoToUrl("https://www.google.com/?hl=ja");
//特定のURLを開いて待機する
Console.ReadKey();
driver.Quit();
}
static void _mkChromnimu()
{
var driver = new ChromeDriver("/usr/bin/");
driver.Navigate().GoToUrl("https://www.google.com/?hl=ja");
//特定のURLを開いて待機する
Console.ReadKey();
driver.Quit();
}
static void Main(string[] args)
{
_mkFireFox();
_mkChromnimu();
}
}
}
FireFoxで動作させる
- FireFoxをインストールする
- GeckoDriverをNugetからインストールする
Nugetからインストール
Install-Package Selenium.WebDriver
Install-Package Selenium.WebDriver.GeckoDriver
上記のプログラムで動作します。
####ユーザープロファイルの保存指定する
引数 | 内容 |
---|---|
–user-data-dir | ユーザープロファイルの保存先を指定 |
–profile-directory | 使用するユーザープロファイルを指定 |
####引数を指定しない場合
–user-data-dirを指定しない場合
- プロファイルは一時ファイルとして作成され、Chrome終了後に廃棄されます。
–profile-directoryを指定しない場合
- ユーザープロファイルは–user-data-dirで指定したフォルダ内のデフォルトのプロファイル(通常はDefault)を使用します。
指定したフォルダが存在しない場合
- –user-data-dir、–profile-directoryに指定したフォルダが存在しない場合は、自動でフォルダが作成されます(Windows環境でのみ確認)ので、タイプミスに注意しましょう。
using System;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
namespace example
{
class Program
{
static void Main(string[] args)
{
ChromeOptions options = new ChromeOptions();
options.AddArgument("--user-data-dir=D:\\tmp\\User Data");
options.AddArgument("--profile-directory=Profile1");
options.AddArgument("--lang=en");
String path = @"D:\tmp\driver\chromedriver_win32"; //フォルダを指定
IWebDriver driver = new ChromeDriver(path, options);
driver.Navigate().GoToUrl("chrome://version");
Console.ReadKey();
driver.Quit();
}
}
}
####プラウザを開いた後、非同期で待機状態にする
プラウザを開いた後、GTKアプリ側で処理をしたい場合は非同期で待機状態にします。
Selenium.Support.UIのWebDriverWaitを使います。
Install-Package Selenium.WebDriver
Install-Package Selenium.WebDriver.ChromeDriver
Install-Package Selenium.Support
using System;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Support.UI;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
var chrome = new ChromeDriver(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location));
chrome.Url = "http://google.com/";
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(5));
}
}
}