java - 无法使用 phantomjs 驱动程序运行 selenium 脚本

标签 java selenium selenium-webdriver testng phantomjs

我是 phantomjs 驱动程序的新手,我需要使用 phantomjs headless 驱动程序在后台运行我的脚本。
这是我的代码,我收到空指针异常。 目前正在使用selenium 2.32,testNG,phantomjs jar 1.0.3

public class PhantomjsDemo {

public WebDriver driver;

@BeforeMethod
public void setup(){
    DesiredCapabilities caps = new DesiredCapabilities();
    caps.setJavascriptEnabled(true);
    caps.setCapability("takesScreenshot", true);
    caps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY,"C:\\phantomjs-1.9.2-windows\\phantomjs.exe");
     WebDriver driver = new PhantomJSDriver(caps);
     driver.get("www.google.com");
}

@Test
public void google(){
    driver.findElement(By.xpath("//*[@id='gbqfba']")).getText();
    driver.findElement(By.xpath("//*[@id='gbqfba']")).getSize().getHeight();
    driver.findElement(By.xpath("//*[@id='gbqfba']")).getSize().getWidth();
    driver.findElement(By.xpath("//*[@id='gbqfba']")).click();
}

@AfterMethod
public void close(){
    driver.quit();
}
}

最佳答案

您不是在 setup() 方法中初始化 Webdriver 成员变量,而是初始化一个方法变量:

WebDriver driver = new PhantomJSDriver(caps);

更改为

this.driver = new PhantomJSDriver(caps);

NPE 应该消失。

关于java - 无法使用 phantomjs 驱动程序运行 selenium 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19157924/

相关文章:

java - 修改后的快速排序可以是 O(n) 的最佳情况吗?

javascript - Flipkart 如何访问 dom 元素进行集成测试?

javascript - WebdriverIO browser.click 给出错误 "Other element would receive the click"。我该如何解决?

javascript - Protractor :如何在命令行输入 URL

java - 多语言查询中的正则表达式不适用于应用程序,但适用于 SQL 开发人员和单元测试

java - 在 Spring Controller 方法调用上填充对象

Java 风格的正则表达式 : Match whole string if group is n chars

Selenium WebDriver.get(url) 不打开 URL

xpath - 使用 Selenium Webdriver+Java 的 primefaces selectOneMenu 值

java - 将值从 java 类传递到 XML 文件