为什么以下代码的空指针异常

时间:2017-04-28 10:53:59

标签: selenium-webdriver nullpointerexception

public class IbiboTest {

static WebDriver driver;

@BeforeClass
public void setUp() throws InterruptedException{
    System.setProperty("webdriver.chrome.driver","C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe");
    WebDriver driver = new ChromeDriver();

    //driver= new FirefoxDriver();
    driver.get("https://www.goibibo.com/");
    Thread.sleep(5000);
    driver.manage().window().maximize();

}


@Test
public void testIbiboHomePage(){
    IbiboHomePage home = PageFactory.initElements(driver, com.Nalini.Ibibo.IbiboHomePage.class);
    home.clickRoundTripRadioButton();

}

public class IbiboHomePage {

WebDriver driver;
@FindBy(css = "input[id='gi_roundtrip_label']")
WebElement iRoundTrip;


public IbiboHomePage(WebDriver driver){
    this.driver = driver;
    PageFactory.initElements(driver, this);

}

public void clickRoundTripRadioButton(){
iRoundTrip.click();
}

}

我只是想自动化ibibo网站。我正在获取上述代码的nullpointer异常。我无法理解传递空值的位置。请帮忙。谢谢

2 个答案:

答案 0 :(得分:0)

似乎与上一篇文章的问题相同

How to use @FindBy annotation in Selenium WebDriver

查看@findby@beforeclass执行顺序。

答案 1 :(得分:0)

进行以下更改:

  1. 替换IbiboHomePage home = PageFactory.initElements(driver, com.Nalini.Ibibo.IbiboHomePage.class);
  2. IbiboHomePage home = PageFactory.initElements(driver, IbiboHomePage.class);

    1. 您可以从static

    2. 中的static WebDriver driver;删除public class IbiboTest
    3. public class IbiboHomePage中将WebDriver的实例声明为:

    4. WebDriver driver;

      1. 从构造函数public IbiboHomePage(WebDriver driver)中删除行PageFactory.initElements(driver, this);
      2. 执行代码并更新状态。

相关问题