无法调用"org.openqa.selenium.WebDriver.get(String)",因为"this.driver"为空



我得到下面的错误。我是Java的新手,因此任何帮助都将不胜感激。

Cannot invoke "org.openqa.selenium.WebDriver.get(String)" because "this.driver" is null

请参阅下面的代码:

package steps;
import io.cucumber.java.en.Given;
import io.github.bonigarcia.wdm.WebDriverManager;
import org.junit.After;
import org.junit.Before;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class hotelBookingFormPage {
public WebDriver driver;
@Before
public void startBrowser() {
WebDriverManager.chromedriver().setup();
driver = new ChromeDriver();
}
@After
public void closeBrowser() {
driver.close();
driver.quit();
}
@Given("I navigate to the hotel booking form page")
public void iNavigateToTheHotelBookingFormPage() {
driver.get("http://hotel-test.equalexperts.io/");
}

如有任何帮助,我们将不胜感激。

import org.junit.After;
import org.junit.Before;

有了这个,您将导入JUnit钩子注释,而不是Cucumber注释。所以Cucumber不知道你想在每个场景前后运行带注释的方法。

黄瓜注释在不同的包中:

import io.cucumber.java.en.Before;
import io.cucumber.java.en.After;

使用Chromedriver的Webdriver接口的强制转换仅在@Before步骤中声明(未使用(,其他步骤不知道。修改如下:

public class hotelBookingFormPage {
public WebDriver driver = new ChromeDriver();
@Before
public void startBrowser() {
WebDriverManager.chromedriver().setup();
}
@After
public void closeBrowser() {
driver.close();
driver.quit();
}
@Given("I navigate to the hotel booking form page")
public void iNavigateToTheHotelBookingFormPage() {
driver.get("http://hotel-test.equalexperts.io/");
}

公共类BaseClass{

//every time we need to open url and browser so we need to create variable for url an dbrowser 
//we have to read url and browser so in base class create object of ReadConfigue class
ReadConfigue readconfigue=new ReadConfigue();
String url=readconfigue.getbaseurl();   //store getbaseurl and getbrowser in string 
String browser=readconfigue.getbrowser();
public static WebDriver driver;
public static Logger logger;


//create method of launch broswer 
@BeforeClass
public void setup() 
{
String  browser="Chrome";
switch(browser.toLowerCase())
{
case "Chrome":
WebDriverManager.chromedriver().setup();
driver=new ChromeDriver();
break;

/*   case "msedge":
WebDriverManager.edgedriver().setup();
driver=new EdgeDriver();
break;
case "firefox":
WebDriverManager.firefoxdriver().setup();
driver=new FirefoxDriver();
break; */
default:
driver=null;
break;

}
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));

// for logging create object of logger
//create static varible of logger  outside class and intitize here
logger =LogManager.getLogger("AutomationFramework");

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

相关内容

最新更新