嗨,我需要检查下拉字段是否具有给定值,但未选择这些值,因此其不会显示在下拉框中。
我有以下Xpath作为元素
//table[contains(@id,'Field')]//tr[td//span[text()='Code']]/preceding-sibling::*[1]/td//select[contains(@id,'GSRCH_FLT')]/option[text()='not=']
可以在浏览器中正确识别元素。但是当我使用以下webdriver方法进行验证时
driver.findElement(By.xpath("//table[contains(@id,'Field')]//tr[td//span[text()='Code']]/preceding-sibling::*[1]/td//select[contains(@id,'GSRCH_FLT')]/option[text()='not=']")).isDisplayed();
其返回的false,因为它没有显示在框中。
您能告诉我替代方法吗?
最佳答案
你要:
private boolean isElementPresent(WebDriver driver, By by){
return driver.findElements(by).count != 0;
}
findElements()
比findElement()
更好,因为如果不存在该元素,它将不等待。如果您在启用隐式等待的情况下运行,则findElement()
将在寻找该元素时超时(这是您正在捕获的异常),这将需要一段时间。