该WebElement.isDisplayed()方法在哪里执行?该WebElement的.java类是创建一个合同的接口isDisplayed()方法,但我不能找到源代码,显示它是如何工作的。有谁知道我怎么找到它?我了解dom.js,并且可以看到ExpectedConditions.java中的所有方法如何工作,但找不到Java我们所谓的源代码实现element.isDisplayed()。
WebElement.isDisplayed()
WebElement
isDisplayed()
ExpectedConditions
Java
element.isDisplayed()
我认为,要真正了解ExpectedConditions工作原理,我需要了解基础isDisplayed()方法的工作原理 。我不知道它最终如何调用中的bot.dom.isInteractable 方法dom.js。
bot.dom.isInteractable
dom.js
实现细节特定于驱动程序。
但是您可以在中找到isDisplayed此处的方法RemoteWebElement。所有WebElement方法都在此处实现。
isDisplayed
RemoteWebElement
该方法如下所示:
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。
IS_ELEMENT_DISPLAYED
例如SafariDriver,适用于扩展程序的,因此您可以在扩展程序端找到实现,可在此处找到
SafariDriver