我是selenium自动化的新手,我已经开始通过在应用程序本身中集成selenium来自动化我的应用程序的几个屏幕。
我添加了以下依赖
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-chrome-driver</artifactId>
<version>3.4.0</version>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.11</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-support</artifactId>
<version>2.29.1</version>
</dependency>
并将代码返回到登录状态,然后点击菜单按钮 chromedriver 如下所示
class LoginTest{
// defined a WebDriver named driver
private WebDriver driver;
@Test
public void loginTest()
throws InterruptedException
{
// open login page
driver.get("https://localhost:8080/adct/#/");
// maximize the window
driver.manage().window().maximize();
// type in user name
driver.findElement(By.id("username")).sendKeys("abcd");
// type in user password
driver.findElement(By.id("password")).sendKeys("abcd");
// click on the submit button
driver.findElement(By.id("loginBtn")).click();
try
{
WebDriverWait wait = new WebDriverWait(driver, 15);
WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[@id='menuBtnId']")));
element.click();
Thread.sleep(3000);
ImportTestCase testCase = new ImportTestCase();
testCase.setFileName("Login Success");
testcases.add(testCase);
}
catch(Exception e)
{
ImportTestCase testCase = new ImportTestCase();
testCase.setFileName("Login Failure");
testcases.add(testCase);
}
}
}
但是在使用 mvn clean install 构建应用程序时,我正在跟踪异常
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.5.1:compile (default-compile) on project BillWebApplication: Compilation failure
[ERROR] /home/user/SVN/Source/BillWebApplication/src/main/java/com/billing/dct/automation/service/LoginTest.java:[25,32] error: cannot access Function
[ERROR] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.5.1:compile (default-compile) on project BillWebApplication: Compilation failure
/home/user/SVN/Source/BillWebApplication/src/main/java/com/billing/dct/automation/service/LoginTest.java:[25,32] error: cannot access Function
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:108)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:76)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:116)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:361)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:213)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:157)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.apache.maven.plugin.CompilationFailureException: Compilation failure
/home/user/SVN/Source/BillWebApplication/src/main/java/com/billing/dct/automation/service/LoginTest.java:[25,32] error: cannot access Function
at org.apache.maven.plugin.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:729)
at org.apache.maven.plugin.CompilerMojo.execute(CompilerMojo.java:128)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:133)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
... 19 more
[ERROR]
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
我已经通过了link,但它仍然没有解决问题,我尝试异常的是指向以下的平静线。
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[@id='menuBtnId']")));
对于上述行是否有任何替代方法,或者是否有任何解决方案来解决它。任何帮助将不胜感激。
答案 0 :(得分:1)
我已经解决了将以下依赖项添加到 pom.xml 而没有任何代码更改
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-remote-driver</artifactId>
<version>3.0.1</version>
</dependency>
答案 1 :(得分:0)
就我而言,问题与Java版本有关。您不能在Java 8之前使用wait.until(ExpectedConditions.visibilityOfElementLocated()
。因为它间接继承了Function接口