Java Selenium 3.3.1和FirefoxDriver的依赖项错误

Java Selenium 3.3.1和FirefoxDriver的依赖项错误,java,maven,selenium,selenium-firefoxdriver,Java,Maven,Selenium,Selenium Firefoxdriver,我使用geckodriver v0.15.0(最新版本)和Firefox 52.0.1(64位) 这是我的密码: public static void main(String[] args) { WebDriver driver = new FirefoxDriver(); driver.get("http://www.google.com"); System.out.println("Page title is: " + driver.getTitle());

我使用geckodriver v0.15.0(最新版本)和Firefox 52.0.1(64位)

这是我的密码:

public static void main(String[] args) {
    WebDriver driver = new FirefoxDriver();
    driver.get("http://www.google.com");
    System.out.println("Page title is: " + driver.getTitle());
    driver.quit();
}
以下是my pom(Selenium的最新版本)中硒的依赖项:

缺少什么依赖关系?多谢各位

更新

mvn依赖项:树
带有htmlunit驱动程序2.25、selenium远程驱动程序3.3.1、selenium firefox驱动程序3.3.1、selenium支持3.3.1

[INFO] +- org.seleniumhq.selenium:htmlunit-driver:jar:2.25:compile
[INFO] |  +- org.seleniumhq.selenium:selenium-api:jar:2.53.1:compile
[INFO] |  \- net.sourceforge.htmlunit:htmlunit:jar:2.21:compile
[INFO] |     +- xalan:xalan:jar:2.7.2:compile
[INFO] |     |  \- xalan:serializer:jar:2.7.2:compile
[INFO] |     +- org.apache.commons:commons-lang3:jar:3.4:compile
[INFO] |     +- org.apache.httpcomponents:httpmime:jar:4.5.2:compile
[INFO] |     +- net.sourceforge.htmlunit:htmlunit-core-js:jar:2.17:compile
[INFO] |     +- net.sourceforge.htmlunit:neko-htmlunit:jar:2.21:compile
[INFO] |     |  \- xerces:xercesImpl:jar:2.11.0:compile
[INFO] |     |     \- xml-apis:xml-apis:jar:1.4.01:compile
[INFO] |     +- net.sourceforge.cssparser:cssparser:jar:0.9.18:compile
[INFO] |     |  \- org.w3c.css:sac:jar:1.3:compile
[INFO] |     +- commons-io:commons-io:jar:2.4:compile
[INFO] |     \- org.eclipse.jetty.websocket:websocket-client:jar:9.4.1.v20170120:compile
[INFO] |        +- org.eclipse.jetty:jetty-util:jar:9.4.1.v20170120:compile
[INFO] |        +- org.eclipse.jetty:jetty-io:jar:9.4.1.v20170120:compile
[INFO] |        +- org.eclipse.jetty:jetty-client:jar:9.4.1.v20170120:compile
[INFO] |        |  \- org.eclipse.jetty:jetty-http:jar:9.4.1.v20170120:compile
[INFO] |        \- org.eclipse.jetty.websocket:websocket-common:jar:9.4.1.v20170120:compile
[INFO] |           \- org.eclipse.jetty.websocket:websocket-api:jar:9.4.1.v20170120:compile
[INFO] +- org.seleniumhq.selenium:selenium-remote-driver:jar:3.3.1:compile
[INFO] |  +- cglib:cglib-nodep:jar:3.2.4:compile
[INFO] |  +- org.apache.commons:commons-exec:jar:1.3:compile
[INFO] |  \- net.java.dev.jna:jna-platform:jar:4.1.0:compile
[INFO] |     \- net.java.dev.jna:jna:jar:4.2.2:compile
[INFO] +- org.seleniumhq.selenium:selenium-firefox-driver:jar:3.3.1:compile
[INFO] \- org.seleniumhq.selenium:selenium-support:jar:3.3.1:compile
更新2


操作系统:Linux 64位

可能您有jar版本冲突错误。当我的应用程序中出现这个bug时,我发现它引用的是旧的Selenium jar。为了解决这个问题,我删除了旧的jar并用Selenium 3 jar重建了项目

确保已将正确的库添加到项目中

命令
mvn dependency:tree
可以帮助您实现这一点

注意:当您使用测试范围时,这意味着依赖关系仅在测试编译和执行阶段可用,因此您必须将代码放入测试方法或删除范围标记


希望这有帮助。

可能您有jar版本冲突错误。当我的应用程序中出现这个bug时,我发现它引用的是旧的Selenium jar。为了解决这个问题,我删除了旧的jar并用Selenium 3 jar重建了项目

确保已将正确的库添加到项目中

命令
mvn dependency:tree
可以帮助您实现这一点

注意:当您使用测试范围时,这意味着依赖关系仅在测试编译和执行阶段可用,因此您必须将代码放入测试方法或删除范围标记


希望这有帮助。

检查您是否拥有与其他依赖项版本相同的
selenium java
依赖项

<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>3.3.1</version>
</dependency>

org.seleniumhq.selenium
硒爪哇
3.3.1

检查是否与其他依赖项具有相同版本的
selenium java
依赖项

<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>3.3.1</version>
</dependency>

org.seleniumhq.selenium
硒爪哇
3.3.1

以下是所需的依赖项(我也清理了.m2目录):


com.google.code.gson
格森
2.8.0
org.apache.httpcomponents
httpclient
4.5.3
org.apache.httpcomponents
httpcore
4.4.6
org.seleniumhq.selenium
selenium远程驱动程序
3.3.1
org.seleniumhq.selenium
硒原料药
3.3.1
org.seleniumhq.selenium
selenium firefox驱动程序
3.3.1

以下是所需的依赖项(我也清理了.m2目录):


com.google.code.gson
格森
2.8.0
org.apache.httpcomponents
httpclient
4.5.3
org.apache.httpcomponents
httpcore
4.4.6
org.seleniumhq.selenium
selenium远程驱动程序
3.3.1
org.seleniumhq.selenium
硒原料药
3.3.1
org.seleniumhq.selenium
selenium firefox驱动程序
3.3.1

添加
System.setProperty(“webdriver.gecko.driver”,System.getProperty(“user.dir”)+“\\geckodriver.exe”)到您的代码

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class CheckFireFox {
    public static void main(String[] args) {
        System.setProperty("webdriver.gecko.driver", System.getProperty("user.dir")+"\\geckodriver.exe");
        WebDriver driver = new FirefoxDriver();
        driver.get("http://www.google.com");
        System.out.println("Page title is: " + driver.getTitle());
        driver.quit();
    }

}
pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>StackOverFlow</groupId>
    <artifactId>StackOverFlow</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <build>
        <sourceDirectory>src</sourceDirectory>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <dependencies>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>3.3.1</version>
        </dependency>
    </dependencies>
</project>

添加
System.setProperty(“webdriver.gecko.driver”,System.getProperty(“user.dir”)+“\\geckodriver.exe”)到您的代码

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class CheckFireFox {
    public static void main(String[] args) {
        System.setProperty("webdriver.gecko.driver", System.getProperty("user.dir")+"\\geckodriver.exe");
        WebDriver driver = new FirefoxDriver();
        driver.get("http://www.google.com");
        System.out.println("Page title is: " + driver.getTitle());
        driver.quit();
    }

}
pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>StackOverFlow</groupId>
    <artifactId>StackOverFlow</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <build>
        <sourceDirectory>src</sourceDirectory>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <dependencies>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>3.3.1</version>
        </dependency>
    </dependencies>
</project>
  • 更新selenium版本
  • 下载geckodriver并设置系统路径,例如“F:\geckodriver-v0.20.1-win64”
  • 将以下代码段添加到现有代码中 DesiredCapabilities=DesiredCapabilities.firefox(); 能力。设置能力(“木偶”,真) 现在运行脚本,它将为您工作,希望这有帮助

  • 更新selenium版本
  • 下载geckodriver并设置系统路径,例如“F:\geckodriver-v0.20.1-win64”
  • 将以下代码段添加到现有代码中 DesiredCapabilities=DesiredCapabilities.firefox(); 能力。设置能力(“木偶”,真)
    现在运行脚本,它将为您工作,希望这有帮助。

    我已经尝试过了。我已经阅读了上的文档,如果您添加selenium firefox驱动程序依赖项,那么此依赖项将毫无用处。我忘记了htmlunit驱动程序依赖项,但它仍然不起作用……我已经试过了。我已经阅读了上的文档,如果您添加selenium firefox驱动程序依赖项,那么此依赖项将毫无用处。我忘记了htmlunit驱动程序依赖项,但它仍然不起作用……它似乎没有与jar版本冲突(请参阅我的更新,了解mvn:dependency:tree output)。我也尝试过移除。m2。您的范围测试是正确的,谢谢,但是还有另一个问题。是相同的异常还是另一个?是的。我找到了解决办法。selenium api依赖项是必需的,它似乎与jar版本没有冲突(请参阅我的mvn更新:依赖项:树输出)。我也尝试过移除。m2。您的范围测试是正确的,谢谢,但是还有另一个问题。是相同的异常还是另一个?是的。我找到了解决办法。selenium api依赖项是必需的,因此它似乎适用于Windows。我的问题是Linux。它可能取决于操作系统?它也应该在Linux上工作,您所要做的就是在System.setProperty()中将geckodriver和双反斜杠(\\)更改为单正斜杠(/)。我的gecko驱动程序已经在JVM参数中定义(-Dwebdriver.gecko.driver=“/path/to/webdriver”)。此外,我已经尝试添加这一行,但出现了同样的问题。我的问题解决了:selenium api依赖项是必需的,因此它似乎在Windows上适用。我的问题是Linux。它可能取决于操作系统?它也应该在Linux上工作,您所要做的就是在System.setProperty()中将geckodriver和双反斜杠(\\)更改为单正斜杠(/)。我的gecko驱动程序已经在JVM参数中定义(-Dwebdriver.gecko.driver=“/path/to/webdriver”)。此外,我已经尝试添加这一行,但出现了同样的问题。我的问题解决了:硒ap
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.firefox.FirefoxDriver;
    
    public class CheckFireFox {
        public static void main(String[] args) {
            System.setProperty("webdriver.gecko.driver", System.getProperty("user.dir")+"\\geckodriver.exe");
            WebDriver driver = new FirefoxDriver();
            driver.get("http://www.google.com");
            System.out.println("Page title is: " + driver.getTitle());
            driver.quit();
        }
    
    }
    
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>StackOverFlow</groupId>
        <artifactId>StackOverFlow</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <build>
            <sourceDirectory>src</sourceDirectory>
            <plugins>
                <plugin>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.5.1</version>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                    </configuration>
                </plugin>
            </plugins>
        </build>
        <dependencies>
            <dependency>
                <groupId>org.seleniumhq.selenium</groupId>
                <artifactId>selenium-java</artifactId>
                <version>3.3.1</version>
            </dependency>
        </dependencies>
    </project>
    
    Mar 27, 2017 2:39:01 PM org.openqa.selenium.remote.ProtocolHandshake createSession
    INFO: Detected dialect: W3C
    Page title is: Google