如何解决在pageobject类中声明WebElementFacade时获取空指针
我试图在 serenity BDD 中实现页面对象模型,当我在 pageobject 中声明 WebelementFacade 时,我得到了空指针
这是我的页面对象类
package PageObjects;
import net.serenitybdd.core.annotations.findby.FindBy;
import net.serenitybdd.core.pages.WebElementFacade;
import net.thucydides.core.pages.PageObject;
public class LoginPage extends PageObject {
@FindBy(css ="#search_query_top") public WebElementFacade searchField;
public void login() {
open();
searchField.typeAndEnter("Blouse");
}
}
这是我的步骤文件
public class Loginsteps {
LoginPage loginPage=new LoginPage();
@Step
public void DoLogin(){
loginPage.login();
}
}
这是我的测试课
@RunWith(SerenityRunner.class)
public class LoginTest {
@Steps
Loginsteps loginsteps;
@Title("Executing login test")
@Test
public void DoLogintest(){
loginsteps.DoLogin();
}
}
控制台日志如下:-
DoLoginTest
--------------------------------------------------------------------------------
[main] INFO net.serenitybdd.core.webdriver.driverproviders.ChromeDriverProvider - Using automatically driver download
[main] INFO io.github.bonigarcia.wdm.WebDriverManager - Using chromedriver 91.0.4472.101 (resolved driver for Chrome 91)
[main] INFO io.github.bonigarcia.wdm.WebDriverManager - Exporting webdriver.chrome.driver as /Users/keshavmac/.cache/selenium/chromedriver/mac64/91.0.4472.101/chromedriver
[main] INFO net.serenitybdd.core.webdriver.driverproviders.ProvideNewDriver - Instantiating driver
[main] INFO net.serenitybdd.core.webdriver.driverproviders.ProvideNewDriver - Driver capabilities: Capabilities {acceptInsecureCerts: false,browserName: chrome,goog:chromeOptions: {args: [],extensions: []},loggingPrefs: org.openqa.selenium.logging...}
Starting ChromeDriver 91.0.4472.101 (af52a90bf87030dd1523486a1cd3ae25c5d76c9b-refs/branch-heads/4472@{#1462}) on port 18207
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.
Jun 26,2021 8:30:06 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: W3C
java.lang.NullPointerException
at PageObjects.LoginPage.login(LoginPage.java:14)
at Steps.Loginsteps.DoLogin(Loginsteps.java:12)
at testcases.LoginTest.DoLoginTest(LoginTest.java:19)
[main] ERROR -
_____ ___ ___ _____ ___ ___ ___ ___ ___
|_ _| | __| / __| |_ _| | __| | _ \ | _ \ / _ \ | _ \
| | | _| \__ \ | | | _| | / | / | (_) | | /
|_| |___| |___/ |_| |___| |_|_\ |_|_\ \___/ |_|_\
Executing login test
---------------------------------------------------------------
[main] ERROR - Test Failed at step: Do login
[main] ERROR -
[pool-1-thread-1] INFO net.thucydides.core.reports.ReportService - net.thucydides.core.reports.json.JSONTestOutcomeReporter@30b131b2: Generating report for test outcome: Login test:DoLoginTest
[pool-2-thread-1] INFO net.thucydides.core.reports.ReportService - net.thucydides.core.reports.html.HtmlAcceptanceTestReporter@38b8b6c0: Generating report for test outcome: Login test:DoLoginTest
请帮我找出这个空指针的根本原因
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。