在构建Maven Selenium应用程序时,获得无法访问功能



我是Selenium Automation的新手,我已经通过将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 单击菜单按钮,为Bellow

      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

我已经通过了链接,但仍然没有解决问题,我尝试过的例外是指向以下的平静。

wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[@id='menuBtnId']")));

是否有上述行的替代方案,或者是否有任何解决方案可以修复它。任何帮助将不胜感激。

我通过将以下依赖项添加到 pom.xml 中,解决了任何代码

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

在我的案例问题中与Java版本有关。您不能在Java 8之前使用wait.until(ExpectedConditions.visibilityOfElementLocated(),因为它间接继承功能接口