Selenium を使うと、ブラウザを自動で操作できます。
使い方としては、① 要素を見つけて、② クリックなどの操作を行うことになります。

1. 要素を見つける

要素を見つけるには、HTML の ID や Class 名、XPath を使うことができます。
XPath を使うと柔軟に要素を探すことができます。

1
2
// XPathを使う場合(Class名に"example"を含む要素)
var element = driver.FindElement(By.XPath("//div[contains(@class, 'example')]"));

XPath はこのページが分かりやすかったです。

要素が表示されるまで時間がかかる場合は、それまで待つ必要があります。

1
2
3
// 要素が表示されるまで、最大5秒待つ
new WebDriverWait(driver, TimeSpan.FromSeconds(5))
.Until(ExpectedConditions.ElementToBeClickable(By.XPath("//div[contains(@class, 'example')]")));

また、画面外の要素は操作できません。スクロールが必要な場合、JavaScript を実行すると便利です。

1
2
3
// 対象の要素までスクロール
IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
js.ExecuteScript("document.querySelectorAll(`div[contains(@class, 'example')]`)[0].scrollIntoView()");

2. 操作する

要素が見つかったら、クリックなどの操作を実行します。

1
2
// クリック
element.Click();

テキストボックスにテキストを入力したい場合などは、そのまま書けば OK です。

1
2
// テキスト入力
element.SendKeys("テスト");