为了账号安全,请及时绑定邮箱和手机立即绑定

FluentWait类型不是通用的;通过Selenium和Java无法为FluentWait类的参数

FluentWait类型不是通用的;通过Selenium和Java无法为FluentWait类的参数

狐的传说 2019-12-06 15:49:16
我正在与Selenium Standalone Server 3.0.1。我正在尝试向Explicit Wait代码中添加,以在元素可见时通过xpath检测元素。为了获得一些Java帮助,我寻找了源代码, Selenium Standalone Server 3.0.1但找不到它。我在selenium-java-2.53.1发行版中找到了源代码。我下载并找到selenium-java-2.53.1-srcs并添加到我的Eclipse IDE。在的帮助下FluentWait,我只需将代码复制粘贴到我的代码中,Eclipse IDE然后更改变量名。文档中的示例代码如下:   // Waiting 30 seconds for an element to be present on the page, checking   // for its presence once every 5 seconds.    Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)       .withTimeout(30, SECONDS)       .pollingEvery(5, SECONDS)       .ignoring(NoSuchElementException.class);    WebElement foo = wait.until(new Function<WebDriver, WebElement>() {     public WebElement apply(WebDriver driver) {       return driver.findElement(By.id("foo"));      }    });但是,当我实现此代码时,只需复制粘贴即可:       Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)           .withTimeout(30, TimeUnit.SECONDS)           .pollingEvery(5, TimeUnit.SECONDS)           .ignoring(NoSuchElementException.class);       WebElement element = wait.until(new Function<WebDriver, WebElement>()        {         public WebElement apply(WebDriver driver) {           return driver.findElement(By.xpath("//p[text()='WebDriver']"));         }       });我在FluentWaitClass 上遇到错误The type FluentWait is not generic; it cannot be parameterized with arguments <WebDriver>这是我的进口清单:    import java.util.concurrent.TimeUnit;    import org.apache.log4j.Logger;    import org.apache.log4j.PropertyConfigurator;    import org.openqa.selenium.By;    import org.openqa.selenium.NoSuchElementException;    import org.openqa.selenium.WebDriver;    import org.openqa.selenium.WebElement;    import org.openqa.selenium.chrome.ChromeDriver;    import org.openqa.selenium.support.ui.Wait;    import com.google.common.base.Function;有人可以帮我吗?
查看完整描述

3 回答

?
冉冉说

TA贡献1877条经验 获得超1个赞

最简单的解决方案是使用其他方法实现:


withTimeout(Duration.ofSeconds(10))

            .pollingEvery(Duration.ofSeconds(2))

该表格withTimeout(Duration timeOut) 仍在使用,不建议使用


查看完整回答
反对 回复 2019-12-06
  • 3 回答
  • 0 关注
  • 934 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信