मैं हो रही रखने NullPointerException के लिए मेरे श्रोता WebDriver. यह है क्योंकि मैं ThreadLocal पर WebDriver में आधार वर्ग? यदि ऐसा है तो कैसे मैं परीक्षण के मामले के ड्राइवर के लिए मेरे श्रोता onTestSuccess विधि?
यह मेरा श्रोता वर्ग:
@Override
public void onTestSuccess(ITestResult result) {
extentTest.get().log(Status.PASS,"Test Passed");
WebDriver driver = null;
Object testObject = result.getInstance();
Class clazz = result.getTestClass().getRealClass();
try {
driver = (WebDriver)clazz.getField("webdriver").get(testObject);
} catch (Exception e) {
}
try {
extentTest.get().addScreenCaptureFromPath(getScreenShotPath(result.getMethod().getMethodName(), driver), result.getMethod().getMethodName());
} catch (IOException e) {
e.printStackTrace();
}
}
BaseClass:
public ThreadLocal<WebDriver> webdriver = new ThreadLocal<WebDriver>();
@BeforeClass
public void setup() {
Reporter.log("@@@@@ Setup @@@@@",true);
ExtentReports extent = ExtentReport.extentReportGenerator();
}
@BeforeMethod
public void startBrowser() {
WebDriverFactory webDriverFactory = new WebDriverFactory();
webDriverFactory.setDriver();
webdriver.set(webDriverFactory.getDriver());
webdriver.get().get(baseURL);
TestCase वर्ग:
@Test(dataProvider = "jsonData", dataProviderClass = TestData.class)
public void testAggregator(String jSon) throws ParseException {
extent.createTest("Test The Welcome Page");
welcomePageImpl = new WelcomePageImpl(webdriver.get());
welcomePageImpl.getAggregatorRequest(webdriver.get(),jSon);
}
अपवाद:
java.lang.NullPointerException
at main.java.com.shoppingCart.testCases.BaseClass.getScreenShotPath(BaseClass.java:71)
at main.java.com.shoppingCart.utilities.Listeners.onTestSuccess(Listeners.java:37)
at org.testng.internal.TestListenerHelper.runTestListeners(TestListenerHelper.java:70)
at org.testng.internal.TestInvoker.runTestResultListener(TestInvoker.java:219)
at org.testng.internal.TestInvoker.invokeMethod(TestInvoker.java:651)
at org.testng.internal.TestInvoker.invokeTestMethod(TestInvoker.java:173)
at org.testng.internal.MethodRunner.runInSequence(MethodRunner.java:46)
at org.testng.internal.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:816)
at org.testng.internal.TestInvoker.invokeTestMethods(TestInvoker.java:146)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:128)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)