简体   繁体   English

NullPointerException 使用 PageFactory

[英]NullPointerException uising PageFactory

I just started using page factory but I can seem to figure out what is causing the null point exception in my code.我刚开始使用页面工厂,但我似乎可以弄清楚是什么导致了我的代码中的 null 点异常。 Its most likely an issue with how I'm calling the driver but don't know how to resolve it这很可能是我如何调用驱动程序但不知道如何解决它的问题

Managing my webdriver here在这里管理我的网络驱动程序

    public class Browser {

    public static WebDriver driver;


    public static void setup() {
        ChromeOptions handlingSSL = new ChromeOptions();
        handlingSSL.setAcceptInsecureCerts(true);

        WebDriverManager.chromedriver().setup();
        driver = new ChromeDriver(handlingSSL);
        driver.manage().window().maximize();
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    }

    public static void quit() {
        driver.quit();
    }
}

The prep for my TC为我的 TC 做准备

    public class Base {

    @BeforeMethod
    public void setup() {
        Browser.setup();
        Browser.driver.get("https://example.com");
    }


    @AfterMethod
    public void quit() {
        Browser.quit();
    }
}

The page class with all the elements包含所有元素的页面 class

    public  class LoginPage {

    @FindBy (id = "username")
    WebElement username;
    @FindBy (id = "password")
    WebElement password;
    @FindBy (xpath = "//button[contains(text(), 'Sign')]")
    WebElement sign;


        public void logIn(String userName, String passWord) {
            username.sendKeys(userName);
            password.sendKeys(passWord);
            sign.click();
        }
    }

I've tried adding the constructor method in the page call as well but it was a no go as well我也尝试在页面调用中添加构造函数方法,但它也不是 go

public class LoginPageTest extends Base {

    LoginPage loginPage = PageFactory.initElements(Browser.driver, LoginPage.class);

    @Test
    public void verifyLoginTest(){
        loginPage.logIn("user","pass");
    }
}
java.lang.NullPointerException
    at org.openqa.selenium.support.pagefactory.DefaultElementLocator.findElement(DefaultElementLocator.java:69)
    at org.openqa.selenium.support.pagefactory.internal.LocatingElementHandler.invoke(LocatingElementHandler.java:38)
    at com.sun.proxy.$Proxy10.sendKeys(Unknown Source)
    at pages.LoginPage.logIn(LoginPage.java:18)
    at login.LoginPageTest.verifyLoginTest(LoginPageTest.java:16)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
    at org.testng.TestRunner.privateRun(TestRunner.java:767)
    at org.testng.TestRunner.run(TestRunner.java:617)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
    at org.testng.SuiteRunner.run(SuiteRunner.java:240)
    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1198)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1123)
    at org.testng.TestNG.run(TestNG.java:1031)
    at com.intellij.rt.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:66)
    at com.intellij.rt.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:109)

You probably need to have a constructor in your LoginPage.java and define a private object for driver in that class something like this:您可能需要在 LoginPage.java 中有一个构造函数,并在 class 中为驱动程序定义一个私有 object ,如下所示:

private WebDriver driver;

public LoginPage(WebDriver driver) {
     this.driver = driver;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 尝试使用PageFactory运行我的脚本时出现“ NullPointerException” - “NullPointerException” on trying to run my script using PageFactory Selenium java.lang.NullPointerException与PageFactory - Selenium java.lang.NullPointerException with PageFactory 在 PageFactory (Selenium+Java) 中获取 NPE NullPointerException - Getting NPE NullPointerException in PageFactory (Selenium+Java) Cucumber Selenium - Java - PageFactory:步骤定义:java.lang.NullPointerException - Cucumber Selenium - Java - PageFactory : Step Definition: java.lang.NullPointerException 使用PageFactory和Page Object通过Selenium调用SendKeys时发生NullpointerException - NullpointerException while invoking SendKeys through Selenium using PageFactory with Page Object 获取硒支持 pagefactory DefaultElementLocator findElement nullpointerexception for driver - Getting selenium support pagefactory DefaultElementLocator findElement nullpointerexception for driver org.openqa.selenium.support.pagefactory.findElement(DefaultElementLocator.java:69)上的java.lang.NullPointerException - java.lang.NullPointerException at org.openqa.selenium.support.pagefactory.findElement(DefaultElementLocator.java:69) 尝试单击存在的并使用PageFactory.initElements()初始化的按钮时出现NullPointerException - I get NullPointerException when trying to click button that exists and initialized with PageFactory.initElements() 我收到此消息但失败:org.openqa.selenium.support.pagefactory.DefaultElementLocator.find 处的 java.lang.NullPointerException - I received this message and failed: java.lang.NullPointerException at org.openqa.selenium.support.pagefactory.DefaultElementLocator.find 在初始化页面对象期间,pagefactory中我在这里缺少什么? 元素识别期间获取NullpointerException - What am i missing here in pagefactory during initializing the page objects? Getting NullpointerException during element identification
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM