4

我正在尝试使用 ghostdriver (Phantomjs) 运行我的 webdriver 测试用例,但这给出了错误java.lang.NoClassDefFoundError: org/openqa/selenium/HasInputDevices
对我来说一切似乎都很好,但我不明白为什么会有错误。
操作系统 - WIN7
编码 - JAVA 1.7
框架:java1.7+testng6.5.2+maven3
Selenium-java 版本 2.35.0


测试用例

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.phantomjs.PhantomJSDriver;
import org.openqa.selenium.phantomjs.PhantomJSDriverService;

import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.Test;

public class ghosttest {

    WebDriver driver;

    @Test
    public void testing() {

        DesiredCapabilities caps = new DesiredCapabilities();
        caps.setJavascriptEnabled(true); 
        caps.setCapability(
        PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY,
        "D:/dumps/phantomjs-1.9.1-windows/phantomjs-1.9.1-windows/phantomjs.exe");
        driver = new PhantomJSDriver(caps);
        driver.get("http://www.google.com");

        String Logintext = driver.findElement(By.linkText("Maps")).getText();
        System.out.println(Logintext);

    }
}


ghostdriver 的 maven 依赖项

<dependency>
    <groupId>com.github.detro.ghostdriver</groupId>
    <artifactId>phantomjsdriver</artifactId>
    <version>1.0.3</version>
</dependency>
4

1 回答 1

8

您的问题是 ghostdriver与 Selenium 2.35 不兼容

如果您将依赖项更改为 2.34,您会没事的。不幸的是,如果您特别需要 Selenium 2.35,您将不得不等待新的 PhantomJSDriver。

目前最新版本的 phantomjsdriver 也是 1.0.4,你有 1.0.3。

于 2013-09-16T13:33:00.457 回答