Java Null指针异常-驱动程序Null
我开始学习Java中的Selenium,我有一个很大的障碍Java Null指针异常-驱动程序Null,java,selenium,Java,Selenium,我开始学习Java中的Selenium,我有一个很大的障碍 import org.junit.After; import org.junit.Before; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.openqa.selenium.Dimension; import org.openqa
import org.junit.After;
import org.junit.Before;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.openqa.selenium.Dimension;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class FirstTest {
WebDriver driver;
@Before
public void driverSetup() {
System.setProperty("webdriver.chrome.driver", "src/main/resources/chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.manage().window().setSize(new Dimension(1280, 720));
}
@After
public void driverQuit() {
driver.quit();
}
@Test
public void getMethod() {
driver.get("http://google.pl");
}
}
我不知道如何解决这个问题,因为在“getMethod”中,驱动程序为空。您已经定义了
WebDriver代码>在全局级别,然后在driverSetup
方法中再次定义和实例化另一个WebDriver驱动程序。
您需要在driverSetup
方法中进行一行更改,它就会工作。
您的driverSetup
应该如下所示:
@Before
public void driverSetup() {
System.setProperty("webdriver.chrome.driver", "src/main/resources/chromedriver.exe");
// Instantiating the global driver here
driver = new ChromeDriver();
driver.manage().window().setSize(new Dimension(1280, 720));
}
您已经定义了WebDriver代码>在全局级别,然后在driverSetup
方法中再次定义和实例化另一个WebDriver驱动程序。
您需要在driverSetup
方法中进行一行更改,它就会工作。
您的driverSetup
应该如下所示:
@Before
public void driverSetup() {
System.setProperty("webdriver.chrome.driver", "src/main/resources/chromedriver.exe");
// Instantiating the global driver here
driver = new ChromeDriver();
driver.manage().window().setSize(new Dimension(1280, 720));
}
你很接近。您已经将WebDriver的实例(即driver
定义为全局实例,如中所示:
WebDriver driver;
您可以在@Before
、@Test
和@After
中重用相同的实例。因此,无需像您所做的那样,在
之前的@中声明任何额外的Instance WebDriver:
WebDriver driver = new ChromeDriver();
解决方案
解决方案是使用相同的全局WebDriver实例,如下所示:
WebDriver driver;
@Before
public void driverSetup() {
System.setProperty("webdriver.chrome.driver", "src/main/resources/chromedriver.exe");
driver = new ChromeDriver();
driver.manage().window().setSize(new Dimension(1280, 720));
}
你很接近。您已经将WebDriver的实例(即driver
定义为全局实例,如中所示:
WebDriver driver;
您可以在@Before
、@Test
和@After
中重用相同的实例。因此,无需像您所做的那样,在
之前的@中声明任何额外的Instance WebDriver:
WebDriver driver = new ChromeDriver();
解决方案
解决方案是使用相同的全局WebDriver实例,如下所示:
WebDriver driver;
@Before
public void driverSetup() {
System.setProperty("webdriver.chrome.driver", "src/main/resources/chromedriver.exe");
driver = new ChromeDriver();
driver.manage().window().setSize(new Dimension(1280, 720));
}