首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RemoteWebDriver为空错误(沙司实验室实现) -selenium,黄瓜,java

RemoteWebDriver为空错误(沙司实验室实现) -selenium,黄瓜,java
EN

Stack Overflow用户
提问于 2022-01-20 12:35:28
回答 1查看 298关注 0票数 1

我正在实现我的代码,以便在Sauce实验室的远程机器上工作。代码运行良好,直到我更改了驱动程序初始化(用于远程服务器)。我一直得到this.driver为空异常。我不知道这是怎么回事,我在跟踪官方文件,并尝试了很多事情。我希望有人能在这里看到这个问题。提前谢谢你。我的代码:

驱动程序:(我的用户名和密钥是从我的沙司实验室帐户中复制的,为此改名)

代码语言:javascript
复制
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();}
}

页面对象,其中我的代码是:(为隐私目的而缩短)

代码语言:javascript
复制
public class LandingPO extends Hooks {

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

然后在我的landingPO.openUrl类中调用这个方法(landingPO.openUrl();)。如果发现第一个驱动程序使用情况,则引发该错误:

代码语言:javascript
复制
Step failed
java.lang.NullPointerException: Cannot invoke "org.openqa.selenium.remote.RemoteWebDriver.get(String)" because "pageObjects.LandingPO.driver" is null

它在my LandingPO中的"driver.get(url)“处右转

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-21 10:50:07

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

我在进口之前/之后使用错误。正确的进口应是:

进口io.cucumber.java.After;进口io.cucumber.java.Before;

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70786343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档