嗨,我需要检查下拉字段是否具有给定值,但未选择这些值,因此其不会显示在下拉框中。
我有以下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()将在寻找该元素时超时(这是您正在捕获的异常),这将需要一段时间。

10-07 16:10