.isDisplayed() - >永远不会返回False为什么?虽然我使用的是try catch block,但它总是给出No Such Element Exception。
try {
boolean status_second= Appointment_Booking_page.second_confirmation.isDisplayed();
System.out.println("Current Second Appointment booking status-->" + status_second);
}
catch (NoSuchElementException e) {
}
请建议同样的。
答案 0 :(得分:1)
显示不会给你错误,因为即使在执行该方法之前,也会发生NoSuchElementException。 isDisplayed用于DOM中存在元素的情况,您需要检查它是否在UI中显示。它永远不会用于检查DOM中是否存在元素。
答案 1 :(得分:0)
True .isDisplayed()
方法永远不会返回 False 。
在您的情况下,通过.isDisplayed()
调用Appointment_Booking_page.second_confirmation
方法,这是您可能的策略来查找webelement。作为定位器策略,您已经调整了并不唯一地标识预期的webelement(即使在调用.isDisplayed()
之前),也会抛出NoSuchElementException
并且您的程序终止。
值得一提的是,即使网页上存在webelement 但不在Viewport内,.isDisplayed()
方法仍然可以返回 False < / em>的
答案 2 :(得分:0)
isDisplayed()是用于验证网页中是否存在网页元素的方法。该方法旨在从每个成功和失败的布尔值产生。如果网页上存在指定的web元素,则该方法返回“true”值;如果网页上不存在web元素,则返回“false”值
答案 3 :(得分:0)
为什么isDisplayed方法不返回false而是抛出NoSuchElementException,这引起了很多困惑;问题在于了解何时使用isDisplayed方法
何时使用isDisplayed?
.isDisplayed()的存在是为了告诉您已经定位的元素(即您的元素是否存在于DOM中)(尝试检查该元素,您应该找到匹配元素)是否可见这页纸;即它的宽度和高度是否大于零, 不会被CSS等隐藏。如果元素存在于页面上,但具有style =“ display:none;”。那么isDisplayed()将返回false。
以上声明的意思是,尽管您具有匹配的元素,但是由于该元素被CSS隐藏,因此您会得到错误的信息
答案 4 :(得分:-1)
你的问题是正确的,isDisplayed将为所有存在的元素显示True,其他任何内容肯定会转到NoSuchElementException。这仅适用于UI中显示的元素,使用未显示的元素检查示例隐藏元素,或者仅在滚动后显示的元素,我相信在这些情况下它应显示False。 / p>
以下是另一个有关同样的问题:
https://github.com/seleniumhq/selenium-google-code-issue-archive/issues/1880