Selenium 中 WebElement.isDisplayed() 方法的实现在哪里?

Where is the implementation for the WebElement.isDisplayed() method in Selenium?

WebElement.isDisplayed()方法的实现在哪里? WebElement.java class 是一个为 isDisplayed() 方法创建契约的接口,但我找不到显示其工作原理的源代码。有谁知道我怎么能找到它?我知道 dom.js 并且我可以看到 ExpectedConditions.java 中的所有方法都是如何工作的,但是我找不到我们称之为 Java 的源代码实现(在 Java 中) =6=].

我认为要真正了解 ExpectedConditions 的工作原理,我需要了解底层 isDisplayed() 方法的工作原理。我不知道它最终是如何调用 dom.js 中的 bot.dom.isInteractable 方法的。

实现细节特定于驱动程序。

但是您可以在 RemoteWebElement 中找到 isDisplayed 方法。所有 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