当前位置: 首页 > 面试题库 >

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

尉迟宪
2023-03-14
问题内容

WebElement.isDisplayed()方法在哪里执行?该WebElement的.java类是创建一个合同的接口isDisplayed()方法,但我不能找到源代码,显示它是如何工作的。有谁知道我怎么找到它?我了解dom.js,并且可以看到ExpectedConditions.java中的所有方法如何工作,但找不到Java我们所谓的源代码实现element.isDisplayed()

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


问题答案:

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

但是您可以在中找到isDisplayed此处的方法RemoteWebElement。所有WebElement方法都在此处实现。

该方法如下所示:

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,适用于扩展程序的,因此您可以在扩展程序端找到实现,可在此处找到



 类似资料:
  • 这段代码过滤调用流,然后打印所有大于10的元素。谓词中的测试方法为我们做到了这一点。 但是filter()方法的实际实现在哪里呢?该方法返回的“流”大于10?我不明白。 这个问题在某种程度上也适用于forEach()方法。它如何在流中迭代?因为filter()和forEach()方法在接口流中是抽象的,没有实现。

  • 在Spring中构建一个项目时,我遵循了一个教程,@Repository接口扩展了另一个接口JpaRepository,它为子接口添加了功能: 在@service类中 我想找到“save”方法的实际代码。下载了并进行了反编译,但在那里找不到实现。

  • 虽然我对Java不是很陌生,但以下问题让我非常困惑,以至于我无法克服。我在网上搜索了很多,也找到了一些答案,但并不完全令人满意。谁能帮我消除疑虑吗 我的困惑是: 问题1:迭代器是一个接口,我们不能实例化或创建接口的对象。那么,我们应该在这里称之为“iter”,它是什么? 问题1.1:迭代器的所有方法(例如next())都由“iter”调用。这些方法在哪里定义?如果这些方法是在向量类的特定内部类中定

  • 本文向大家介绍在Servlet执行的过程中,一般实现哪几个方法?相关面试题,主要包含被问及在Servlet执行的过程中,一般实现哪几个方法?时的应答技巧和注意事项,需要的朋友参考一下 考察点:servlet   public void init(ServletConfig config) public ServletConfig getServletConfig() public String g

  • 问题内容: new String[] { “foo”, “bar” }.clone(); 使用我最喜欢的IDE(即Eclipse),我想通过 按Ctrl键单击 (如往常一样) 查看 上述方法的源代码,但是它带我到的本机代码,仅提供签名而不提供签名。方法的主体。 自动完成功能告诉我,上述方法属于类(),但是该类的源代码未提供此类方法(因为我正在处理该类…)。 那么,该实现隐藏在哪里?自动完成是否应该

  • 问题内容: 我一直在尝试使它工作一段时间,而我来这里询问-如何在Swift中使用CLLocationManagerDelegate方法?我把它放在班上的第一位: 我在我的方法中添加了以下内容: 而且我尝试使用这些委托方法无济于事: 我也尝试过在函数前面使用@optional,但是Xcode会引发编译器错误。有任何想法吗? 问题答案: 如果尚未添加,则需要将或键添加到您的plist中,因为它们现在是