【问题标题】:Why we need guava in selenium webdriver?为什么我们在 selenium webdriver 中需要番石榴?
【发布时间】:2020-04-25 01:41:52
【问题描述】:

我用 maven 创建了 selenium web 驱动程序项目。 我在某处读到我们需要添加番石榴依赖项。

任何人都知道为什么我们需要使用 selenium 的番石榴依赖吗?

【问题讨论】:

    标签: java maven selenium guava


    【解决方案1】:

    番石榴

    Guava 是由 Google 开发的基于 Java 的开源库。它有助于开发人员和测试自动化工程师采用最佳编码实践,并有助于减少编码错误。它为集合、缓存、原语支持、并发、通用注释、字符串处理、I/O 和验证提供实用方法。


    Maven 依赖

    Selenium v​​3.141.59 客户端开始,Maven 依赖项 为:

    <dependency>
      <groupId>com.google.guava</groupId>
      <artifactId>guava</artifactId>
      <version>25.0-jre</version>
    </dependency>
    

    tl;博士

    您可以在以下位置找到一些相关讨论:

    【讨论】:

      【解决方案2】:

      这是我能安排的最好的信息。

      总结答案:

      SeleniumFunction and Predicates 使用 Guava 库。

      以上引用的参考(第 126 页):

      https://books.google.de/books?id=PMNiDwAAQBAJ&pg=PA126&lpg=PA126&dq=selenium+and+guava&source=bl&ots=hxRq2Dq61Y&sig=ACfU3U3ro_HhI4cpejvSSSEvWYZMF99l9g&hl=en&sa=X&ved=2ahUKEwiO7oOP6PHmAhUCCewKHfnJDSs4ChDoATABegQIChAB#v=onepage&q&f=false

      函数和谓词的简要介绍以及 Selenium 中使用的示例:

      Guava 提供了两个基本的“函数式”接口:

      • Function,具有单一方法B apply(A input)。 Function 的实例通常被认为是可引用的 透明——没有副作用——并且与equals一致, 也就是说,a.equals(b) 意味着 function.apply(a).equals(function.apply(b))

      示例:

      public WebElement apply(WebDriver driver) {
                  return driver.findElement(locator);
              }
      

      here你也可以查。主要用于 Selenium Waits(隐式除外)。

      • 谓词,具有单一方法 boolean apply(T input)。 Predicate 的实例通常被认为是无副作用的 并且与equals一致。

      示例:

      selenium filter with Predicate

      here你可以在Guava官方文档中找到Function and Predicates的详细信息

      希望对你有帮助。

      【讨论】:

      • 优秀的答案!谢谢,这刚刚解决了我连续大约 8 小时遇到的一个问题。这样一个简单的修复也
      • 谢谢@AlexanderDunn。我很高兴这个答案有助于解决您的问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-03
      • 2012-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多