微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在pageobject类中声明WebElementFacade时获取空指针

如何解决在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 举报,一经查实,本站将立刻删除。