RemoteWebDriver为空错误(酱实验室实现)-硒,黄瓜,java



我正在实现我的代码,以便在Sauce Labs的远程机器上工作。代码运行良好,直到我更改了驱动程序的初始化(以使用远程服务器(。我一直收到这个。驱动程序为空异常。我不知道它出了什么问题,我遵循了官方文件,尝试了很多事情。我希望有人能在这里看到这个问题。提前谢谢。我的代码:

DRIVER:(我的用户名和密钥是从我的酱汁实验室帐户复制的,为此重命名(

public class Hooks {
public RemoteWebDriver driver;
public WebDriverWait wait;
@Before
public void setup(Scenario scenario) throws MalformedURLException {
String username = System.getenv("my username");
String accessKey = System.getenv("key");
ChromeOptions chromeOpts = new ChromeOptions();
MutableCapabilities sauceOpts = new MutableCapabilities();
sauceOpts.setCapability("name", scenario.getName());
sauceOpts.setCapability("username", username);
sauceOpts.setCapability("accessKey",accessKey);
MutableCapabilities browserOptions = new MutableCapabilities();
browserOptions.setCapability(ChromeOptions.CAPABILITY, chromeOpts);
browserOptions.setCapability("sauce:options", sauceOpts);
browserOptions.setCapability("browserName", "chrome");
browserOptions.setCapability("browserVersion", "latest");
browserOptions.setCapability("platformName", "Windows 10");
String sauceUrl = "https://ondemand.us-west-1.saucelabs.com:443/wd/hub";
URL url = new URL(sauceUrl);
driver = new RemoteWebDriver(url, browserOptions);
wait = new WebDriverWait(driver, Duration.ofSeconds(10));

}
@After
public void tearDown(Scenario scenario) {driver.quit();}
}

我的代码所在的页面对象:(出于隐私目的缩短(

public class LandingPO extends Hooks {
static RemoteWebDriver driver;
static WebDriverWait wait;
String url = "https://google.com"
public void openUrl() {
driver.get(url);}

然后我只调用这个方法(landingPO.openUrl((;(在我的stepDefinition类中。在发现第一个驱动程序使用的位置引发错误:

Step failed
java.lang.NullPointerException: Cannot invoke "org.openqa.selenium.remote.RemoteWebDriver.get(String)" because "pageObjects.LandingPO.driver" is null

它在";driver.get(url(";在我的LandingPO中

如果有人会遇到同样的问题,答案是:

导入前/导入后我使用了错误的。正确的导入应该是:

导入io.cucumber.java.After;导入io.cucumber.java.Before;

最新更新