Selenium WebDriver を使う (C#) (3)

WebDriver を使ってよくやることをまとめます。

ブラウザのウィンドウを最大化する

var url = "<任意のURL>";
driver.Manage().Window.Maximize();


任意のURLに移動する

var url = "<任意のURL>";
driver.Navigate().GoToUrl(url);


「戻る」操作を行う

var url = "<任意のURL>";
driver.Navigate().Back();


JavaScript を実行する

((IJavaScriptExecutor)driver).ExecuteScript("window.focus();");
// スクリプトが値を return すれば ExecuteScript の戻り値として取れる


C# 側で取得した要素を JavaScript に渡す

// element は IWebElement arguments[0] にそのオブジェクトが設定されている
((IJavaScriptExecutor)executor.Driver).ExecuteScript("alert(arguments[0]);", element);


表示されている要素だけ取得する

var elements = driver.FindElements(by).Where(o => o.Displayed).ToList();


alert を OK する

driver.SwitchTo().Alert().Accept();
// キャンセルする場合は driver.SwitchTo().Alert().Dismiss();
// SwitchTo を使えば処理対象を iframe に切り替えることもできる


テキストボックス(input)にテキストを書き込む

var text = "abc";
element.SendKeys(text);
// もともとテキストボックスに入力されている値を削除してから入力する場合は、element.Clear() してから SendKeys する


マウスカーソルをホバーする

new Actions(driver)
    .MoveToElement(element) // element ホバーしたい要素
    .Perform();


セレクトボックスの選択肢を選択する

var select = new SelectElement(element);
select.SelectByValue(value);
// 選択する方法として他に、SelectByText SelectByIndex などがある


セレクトボックスで選択されている値を取得する

var select = new SelectElement(element);
var option = select.SelectedOption;
// 未選択の場合は option が null になるので注意