C#で Selenium を使ってブラウザを操作する上で便利なコードを書いておきます。

指定した URL を新しいタブで開く

1
2
3
4
5
6
// 新しいタブを開いて選択する
((IJavaScriptExecutor)driver).ExecuteScript("window.open();");
var newTab = driver.WindowHandles.Last();
driver.SwitchTo().Window(newTab);
// 指定したURLに遷移する
driver.Navigate().GoToUrl("http://example.com");

タブを選択する

driver.WindowHandlesに全タブの実体が入っているので、取り出してチェックしていけば OK です。

1
2
3
4
5
6
7
8
9
10
// 開いているタブからURLが"http://example.com"のタブを選択する
var handles = driver.WindowHandles;
foreach (var handle in handles)
{
driver.SwitchTo().Window(handle);
if (driver.Url == "http://example.com")
{
break;
}
}

タブを再読み込みする

1
2
// 現在開いているタブを再読み込みする
driver.Navigate().Refresh()

ブラウザを終了する

1
driver.Quit();