【问题标题】:Selenium Phantomjs driver - java.lang.NoSuchMethodError: org.openqa.selenium.os.CommandLine.find(Ljava/lang/String;)Ljava/lang/String;Selenium Phantomjs 驱动程序 - java.lang.NoSuchMethodError: org.openqa.selenium.os.CommandLine.find(Ljava/lang/String;)Ljava/lang/String;
【发布时间】:2020-02-05 18:15:33
【问题描述】:

我厌倦了在 Selenium 测试中实现 Phantomjs 驱动程序,但它抛出了这个错误。 java.lang.NoSuchMethodError: org.openqa.selenium.os.CommandLine.find(Ljava/lang/String;)Ljava/lang/String; Phantom 库是https://mvnrepository.com/artifact/org.jboss.arquillian.extension/arquillian-phantom-driver 版本 1.2.1.1,Java 版本是 1.8 实现如下:

    if( driver == null )
    {
        if( which == CHROME )
        {
            System.setProperty("webdriver.chrome.driver", which);
            driver = new ChromeDriver();
        }
        else if ( which == PHANTOM )
        {
            System.setProperty("webdriver.phantomjs.driver", which);
            driver = new PhantomJSDriver();
        }
    }

我应该怎么做才能强制它工作?它是正确的幻影库吗?谢谢。

【问题讨论】:

  • 你添加了phantomjsdriver maven依赖

标签: java selenium phantomjs


【解决方案1】:

对于 PhantomJSDriver (GhostDriver) 需要添加以下 Maven 依赖项:

<dependency>
    <groupId>com.github.detro</groupId>
    <artifactId>phantomjsdriver</artifactId>
    <version>1.4.0</version>
</dependency> 

此外,将System.setProperty 行更新为phantomjs 二进制文件的绝对路径,如下所示:

File path=new File("C:\\path\\\to\phantomjs-x.x.x-windows\\bin\\phantomjs.exe");
System.setProperty("phantomjs.binary.path",path.getAbsolutePath());
WebDriver driver= new PhantomJSDriver();
driver.navigate().to("https://www.google.co.in/");

注意:您可以在 IDE 中清理您的项目并仅使用 Selenium-Java Clients 依赖项。

【讨论】:

  • 谢谢。这行得通。我不知道要安装哪个库。
  • @Čamo 很高兴听到
【解决方案2】:

这种方法对我有用:

  1. 下载驱动:https://phantomjs.org/download.html

  2. 添加这个依赖:

    <dependency>
        <groupId>com.codeborne</groupId>
        <artifactId>phantomjsdriver</artifactId>
        <version>1.4.4</version>
        <scope>compile</scope>
    </dependency>
    
  3. 添加到您的代码中:

    DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setCapability("phantomjs.binary.path", "pathToBin");
    driver = new PhantomJSDriver(capabilities);
    

注意: 我正在使用 Selenium 版本 3.8.1

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>3.8.1</version>
    </dependency>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-remote-driver</artifactId>
        <version>3.8.1</version>
    </dependency>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-api</artifactId>
        <version>3.8.1</version>
    </dependency>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-07
    • 1970-01-01
    • 2014-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-17
    相关资源
    最近更新 更多