当我搜索术语时,有时会立即显示搜索结果。我等待它等待10秒以单击该元素,即使在该结果之前找到它也是如此。
如何在显示搜索结果后立即单击元素?
答案 0 :(得分:1)
您可以使用此:
WebDriverWait wait = new WebDriverWait(webDriver, timeoutInSeconds);
wait.until(ExpectedConditions.elementToBeClickable(By.id<locator>));
示例可能是这样的:
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.elementToBeClickable(By.id("elementId")));
此代码将等到元素可单击至少10秒钟。您可以在文档here中获得更多信息。
根据您的解释,您可以这样做:
List<WebElement> listSearchResults = new WebDriverWait(driver, 10).until(ExpectedConditions.presenceOfAllElementsLocatedBy((By.xpath(""))));
if(listSearchResults.size() > 1){
new WebDriverWait(driver, 10).until(ExpectedConditions.elementToBeClickable(listSearchResults.get(listSearchResults.size()-1))).click();
}
答案 1 :(得分:0)
您可以使用:
WebDriverWait wait = new WebDriverWait(driver, 20);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("your selector")));
它将等待元素的可见性,一旦可见,您就可以单击它。 即
driver.findElement(By.xpath("your selector")).click();
希望对您有帮助:)