要素がページに表示されているかどうかを確認する方法はいくつかあります。
1.
try {
webDriver.findElement(Locator locator).click();
catch (NoSuchElementException e) {
// move on
}
2.
WebDriverWait wait = new WebDriverWait(webDriver, timeoutInSeconds);
try {
WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(Locator locator);
element.click();
catch (TimeoutException e) {
// move on
}
3.
List<WebElement> elements = webDriver.findElements(Locator locator);
if (!elements.isEmpty()) {
elements.get(0).click();
} else {
// move on
// maybe you don't need this else block
}
あなたは、最初の2つの可能な実装を見ることができるようにチェックされない例外をスローします。これらの例外を使用したくない場合は、3番目の例外を使用します。私はそれが要素が存在し、それが大丈夫であることを知っているかどうかをチェックしたいときに、通常の振る舞いに対して3番目の実装を使用するのがよい習慣だと思います。
2回目のエラーはありますか – khakishoiab
明示的な待機条件を使用して特定の要素が表示されるまで待つことができます。目的のページ/要素が表示されたら、それを閉じて次の手順に進みます。 –
ボタンには固有の名前/ IDがありますか?その場合は、ページソースを確認し、要素が存在するかどうかを確認してください。次のようにすることができます:string PageSource = Driver.PageSource; – Anand