【问题标题】:Selenium 3.3.1 wait.unit is throwing an error java.util.function.Function<? super org.openqa.selenium.WebDriver, V>) [duplicate]Selenium 3.3.1 wait.unit 抛出错误 java.util.function.Function<?超级 org.openqa.selenium.WebDriver,V>) [重复]
【发布时间】:2017-03-10 17:44:02
【问题描述】:

我已将我的 selenium webdriver 从 3.0.1 升级到 3.2.0 并观察到

WebDriverWait wait = new WebDriverWait(Driver, 30);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("myID"));

如果显示编译错误如下:

方法

until((java.util.function.Function<? super 
 org.openqa.selenium.WebDriver, V>) 
 ExpectedConditions.visibilityOfElementLocated(By.id("myID")));

当我回到 selenium 3.0.1 时,它按预期工作。

3.2.0还是3.3.1有问题,如何解决这个问题

【问题讨论】:

    标签: selenium webdriver


    【解决方案1】:

    将您的 guava 包更新到版本 21

    【讨论】:

      【解决方案2】:

      FluentWait 方法 until() 在最新的 selenium 支持 3.2.0 及更高版本中已弃用。如果你真的需要使用最新版本的 selenium 并且想使用 selenium-support fluent wait,那么可以使用 selenium-support 3.0.1。 Selenium 3.2.0 包含不支持 until() 的 selenium 支持 3.2.0。如果你正在使用可以只添加以下依赖项

         <dependency>
              <groupId>org.seleniumhq.selenium</groupId>
              <artifactId>selenium-support</artifactId>
              <version>3.0.1</version>
          </dependency>
      

      【讨论】:

      • 最后我可以使用下面的代码来解决问题
      • WebDriverWait 等待 = new WebDriverWait(Driver, 30); Function myFunction = new Function() { public Boolean apply(WebDriver arg0) { System.out.println("检查对象!!"); WebElement 元素 = arg0.findElement(By.id("dynamicText")); if (element != null) { System.out.println("找到一个新的动态对象。"); } 返回真; } }; wait.until(myFunction);
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-19
      • 1970-01-01
      • 1970-01-01
      • 2014-10-18
      • 1970-01-01
      • 1970-01-01
      • 2018-04-29
      相关资源
      最近更新 更多