appium / appium/java-client

Unable to initialize the WebElement of Object Repository using "PageFactory.initElements(driver, this);" in constructor, Throwing an java.lang.NullPointerException

Open
#1,348 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Java
Stars
1.3k
Forks
752
Avg merge
6d 21h
Merged PRs (30d)
8

Description

Description

Unable to initialize the WebElement of Object Repository using "PageFactory.initElements(driver, this);" in constructor in Page Object class which inherits the driver from the base class, Throwing an java.lang.NullPointerException

Environment

  • Java 1.7
  • Selenium 3.141.59
  • Test ng - 6.14.3
  • Desktop OS - win 7

Details

Code throws java.lang.NullPointerException as Web Elements are not initializing using "PageFactory.initElements(driver, this);" method in Page Object class

Code To Reproduce Issue [ Good To Have ]

You can access the code from following link -
https://github.com/vaibhav01M/sampleNewDemoTours.git

Exception Stacktraces

[RemoteTestNG] detected TestNG version 6.14.3
Starting ChromeDriver 2.40.565498 (ea082db3280dd6843ebfb08a625e3eb905c4f5ab) on port 8988
Only local connections are allowed.
May 17, 2020 2:53:31 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: OSS
PASSED: verifyWelcomePage
FAILED: verifyMercuryLogo
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.$Proxy9.isDisplayed(Unknown Source)
at pageobjects.WelcomePage.validateMercuryLogo(WelcomePage.java:33)
at testscript.WelcomePageTest.verifyMercuryLogo(WelcomePageTest.java:31)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:124)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:583)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:719)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:989)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
at org.testng.TestRunner.privateRun(TestRunner.java:648)
at org.testng.TestRunner.run(TestRunner.java:505)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:455)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:450)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:415)
at org.testng.SuiteRunner.run(SuiteRunner.java:364)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:84)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1208)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1137)
at org.testng.TestNG.runSuites(TestNG.java:1049)
at org.testng.TestNG.run(TestNG.java:1017)
at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)

===============================================
Default test
Tests run: 2, Failures: 1, Skips: 0

===============================================
Default suite
Total tests run: 2, Failures: 1, Skips: 0

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by cloning the linked sample project and inspecting pageobjects.WelcomePage.java, testscript.WelcomePageTest.java, and the constructor call to PageFactory.initElements. Reproduce verifyMercuryLogo and trace the driver and element initialization before deciding whether the issue belongs in the client library. Done means identifying a reproducible library defect or documenting that the sample's setup causes the null driver.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
testing-qa
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.