我是phantomjs驱动程序的新手,我需要使用phantomjs无头驱动程序在后台运行我的脚本。
这是我的代码我得到空指针异常。
目前我正在使用硒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();
}
}
答案 0 :(得分:2)
您没有在setup()方法中初始化Webdriver
成员变量,而是在方法变量中初始化:
WebDriver driver = new PhantomJSDriver(caps);
将其更改为
this.driver = new PhantomJSDriver(caps);
并且NPE应该消失。