WebElement.isDisplayed()
方法的实施在哪里? WebElement
。java类是一个为isDisplayed()
方法创建契约的接口,但我找不到显示其工作原理的源代码。有谁知道我怎么能找到它?我知道dom.js,我可以看到ExpectedConditions
。java中的所有方法是如何工作的,但我找不到我们称之为Java
的源代码实现(element.isDisplayed()
) {1}}。
我认为要真正了解ExpectedConditions
的工作方式,我需要了解基础isDisplayed()
方法的工作原理。我无法弄清楚它最终如何调用bot.dom.isInteractable
中的dom.js
方法。
答案 0 :(得分:4)
实施细节特定于驱动程序。
但您可以在isDisplayed
找到RemoteWebElement
方法。所有WebElement
方法都已在here上实施。
方法如下:
public boolean isDisplayed() {
Object value = execute(DriverCommand.IS_ELEMENT_DISPLAYED, ImmutableMap.of("id", id)) .getValue();
try {
return (Boolean) value;
} catch (ClassCastException ex) {
throw new WebDriverException("Returned value cannot be converted to Boolean: " + value, ex);
}
}
这一行:
execute(DriverCommand.IS_ELEMENT_DISPLAYED, ImmutableMap.of("id", id))
纯粹是特定于驱动程序的,因为每个驱动程序都有自己的处理此操作的实现IS_ELEMENT_DISPLAYED
。
例如SafariDriver
,它与扩展程序一起使用,因此您可以在扩展端找到实现,可以找到here