当我执行 Test Runner 类时出现错误“无法调用 FindElement() 方法

问题描述 投票:0回答:1

enter image description here功能文件

enter image description here 步骤定义类

enter image description here 测试运行者课程

/*

When user enters "problem_user" and "secret_sauce"                 # stepDefinitions.LoginStepDef.user_enters_and(java.lang.String,java.lang.String)
      java.lang.NullPointerException: Cannot invoke "org.openqa.selenium.WebDriver.findElement(org.openqa.selenium.By)" because "this.driver" is null
    at stepDefinitions.LoginStepDef.user_enters_and(LoginStepDef.java:26)

/*

java selenium-webdriver cucumber-java
1个回答
0
投票

您在测试类中声明一个

driver
属性,然后在
 driver
方法中创建另一个
 launch_the_browser_and_navigate_to_swag_url
。 第一个
driver
对象可在类中的任何位置访问,但默认初始化为 null,因为您没有提供值。在方法中声明的另一个驱动程序对象仅在此特定方法中可见。 因此,当您调用测试用例时,它会尝试调用统一的
findElement
上的
driver
方法。 您需要做的是,不要在
 launch_the_browser_and_navigate_to_swag_url
方法中创建方法范围的对象,而是使用关键字
this
将类范围的驱动程序设置为相同的值,即

public void launch_the_browser_and_navigate_to_swag_url(){
this.driver = new WebDriver(options);
//rest of your method
}

此外,您使用了代码的屏幕截图,这使得阅读和复制/粘贴内容变得困难。以后发帖时请尽量遵循准则

© www.soinside.com 2019 - 2024. All rights reserved.