有幾種方法可以檢查元素是否顯示在頁面上。
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
}
正如你可以看到前兩個可能的實現拋出一個未經檢查的異常。如果你不想讓這些例外使用第三種。我認爲當你只是想檢查元素是否在那裏,並且你知道它沒問題時,使用第三個實現進行正常行爲是一個好習慣。
第二次得到什麼錯誤 – khakishoiab
您可以等待某個特定元素使用顯式等待條件顯示某些時刻。如果您想要的頁面/元素出現,請關閉它並繼續下一步。 –
按鈕是否有唯一的名稱/ ID?如果是,請嘗試檢查頁面源並查看元素是否存在。你可以這樣做:string PageSource = Driver.PageSource; if(PageSource.Contains(expectedtext)){Driver.FindElement(By .....)。Click()} – Anand