NoSuchMethodError:org.openqa.selenium.support.ui.WebDriverWait.until - java

我正在尝试运行以下硒代码:

        WebDriver driver;
        System.setProperty("webdriver.chrome.driver", "C:\\Driver\\chromedriver.exe");
        driver = new ChromeDriver();
        driver.get("http://www.behsad.com/nportal/Default.aspx?tabid=55");

        driver.findElement(By.id("dnn_dnnUser_enhancedRegisterLink")).click();

        WebDriverWait wait=new WebDriverWait(driver, 30);
        WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(
                                        By.id("dnn_dnnUser_enhancedRegisterLink")));
        element.click();

这是我的pom.xml:

<dependency>
    <groupId>info.cukes</groupId>
    <artifactId>cucumber-picocontainer</artifactId>
    <version>1.2.5</version>
</dependency>

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>3.4.0</version>
</dependency>

最后是代码的导入:

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

代码陷入困境:

WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(
                                            By.id("dnn_dnnUser_enhancedRegisterLink")));

它抱怨:

java.lang.NoSuchMethodError: org.openqa.selenium.support.ui.WebDriverWait.until(Lcom/google/common/base/Function;)Ljava/lang/Object;

参考方案

我认为您的问题出在这行代码中

WebElement element=wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("dnn_dnnUser_enhancedRegisterLink")));

由于使用Wait.until来告诉您的Web驱动程序要等到发生某项操作(即可见性),该操作由ID =“ dnn_dnnUser_enhancedRegisterLink”定位,在您的情况下
但是此方法不会返回Web元素对象,因此您无法使用它来定义Web元素

相反,您只需要编写:

wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("dnn_dnnUser_enhancedRegisterLink")));

Selenium Webdriver(Java)-查找禁用了属性=“”的元素 - java

我有<input id="test" disabled="">。如何找到具有属性disable =“”的元素。附言:在这种情况下,我不需要使用ID。我想找到一个具有禁用属性的元素。我尝试使用String enbl = Login.driver.findElement(By.cssSelector("…

将ExtentTest的默认设置为FAILED - java

我正在使用extentreports为使用Java和Selenium编写的测试添加报告。我注意到,如果ExtentTest有两个日志“ INFO”和“ PASSED”,则如果未捕获通过日志,则将其视为“通过”。我如何以某种方式更改它,如果未通过测试,它将被自动标记为“失败”? 参考方案 默认情况下,无法更改行为以使测试用例失败。它是一个设计决策,每个测试框架…

如何在Selenium WebDriver中关闭语言选项框 - java

我想通过Selenium Webdriver跳过语言选择。这可以通过按键盘上的Escape键或单击“保存”按钮来实现。我没有做任何一个。任何人都可以在这方面提供帮助吗?//driver.switchTo().alert(); //button[@id='save_language'] java参考方案 更像是一个警报。尝试使用以下代码:A…

java.lang.VerifyError:在分支目标73处期望一个堆栈映射框架 - java

我使用jdk 1.7,jekins,maven,当我构建项目时,单元测试失败,错误是: java.lang.VerifyError:在分支目标73处期望一个堆栈映射框架 异常详细信息:位置: com / DataDictDao.save(Lcom / DataDict;)Ljava / lang / Long; @ 25:lcd原因: 在此位置的预期堆栈图框…

通过openoffice API控制印象展示窗口 - java

我目前正在尝试使用openoffice API来显示Java的PowerPoint演示文稿-我有一个公平的方法,我设法打开了演示文稿并进行显示。但是,有一些我想做的事情,我无法理解API的现状:我不希望主要的Impress窗口出现,而只是演示窗口。现在,我可以启动它,以最小化属性的问题,但是随后实际显示窗口也被最小化,这是我所不希望的。我也可以抓住窗口并在其…