我尝试将ExplicitWait用于自动提示框,但它不起作用,所以我使用简单的Thread.sleep(5000)
:
/***************************************************************************************/
// The below Thread.sleep(5000) works fine
// Thread.sleep(5000);
// However the below Explicit Wait block does not recognize the element
WebDriverWait wait5000 = new WebDriverWait(driver, 0);
wait5000.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@class='auto_suggest']/*[@class='title_item']")));
/***************************************************************************************/
WebElement firstItem = driver.findElement(By.xpath("//*[@class='auto_suggest']/*[@class='title_item']"));
firstItem.click();
System.out.println("Done!");
}
}
我可以使用Thread.sleep(5000)
但由于时间损失,效率不高。有没有办法引入一个明确的等待autosuggest框?如何以更有效的方式更多地点击自动提示框?
答案 0 :(得分:2)
构造函数中的第二个参数是以毫秒为单位的超时。
此处WebDriverWait wait5000 = new WebDriverWait(driver, 0);
传入0
- 您最多会花费0
毫秒来查找该元素。您可以尝试增加超时,例如,让它搜索最多5秒的元素:
WebDriverWait wait5000 = new WebDriverWait(driver, 5000);