org.openqa.selenium.support.pagefactory.DefaultElementLocator.findElement(DefaultElementLocator.java:69)中的java.lang.NullPointerException

时间:2017-03-17 04:59:17

标签: selenium selenium-webdriver testng-eclipse

我是selenium框架的新手,我正在尝试创建一个框架并开始迈向学习框架。我已经为登录页面编写了一个代码,但是我在这里得到了" nullPointerException"。任何人的帮助都会更好。提前致谢。 enter image description here enter image description here

4 个答案:

答案 0 :(得分:1)

您的驱动程序未初始化,您在Utility Class中编写了代码,您可以在LoginPage中扩展UtlitlityClass并在LoginPage中使用@BeforeMefthod,您可以在其中创建驱动程序实例并在测试方法中使用它并且@ AfterMethod摧毁同样的东西。

答案 1 :(得分:0)

这是因为声明了WebDriver驱动程序;在父类和子类中。

示例:1。创建一个基类,并在基类中声明Webdrievr; 2.Created子类并在子类中声明webdriver。 3.child类扩展基类。 这个问题来了。

因此,在Base类或Child Class中声明WebDriver驱动程序。

答案 2 :(得分:0)

最好放置可编辑的代码,以便对其进行纠正; 1.从实用程序中的静态webdriver驱动程序中删除静态 2.删除登录页面中声明的webdriver

问题:基本URL是否启动homepag或登录页面 如果是首页 1.创建一个主页类 2.在实用程序中-进行此分配-
主页homepgobj = driver.get(url);
返回homepgobj;
并用文字首页替换空白。 3.现在在“主页”中创建方法,使用
中的pagefactory导航到“登录”页面     公共LogInPage navigationToLoginPage(){
    driver.navigate()。to(“登录页面网址”);
    LoginPage logInPageObj =     PageFactory.initElements(driver,LoginPage.class);     
    返回loginPageObj;     } 4.在主页上创建const。就像在登录页面中所做的那样,将driverFactory放置到driverobj中,但不要在其中放置pagefactory 5.还要从const中删除页面工厂元素。登录页面 6.创建登录页面测试类以编写测试 。现在,在进行书面测试时,导航至登录页面,如下所示      主页homepgObj = startBrowser(浏览器,URL)-     
-这将导航到主页
     登录loginpgObj =       homepgObj.callmethodcreatedinhomepage]-
-      将导航到登录页面。

 loginpgObj.[Call methods of loginpg]

答案 3 :(得分:0)

我也面临着同样的问题。当我在测试中使用BaseClass(父类)声明WebDrive驱动程序时,错误地也在测试类(子类)中声明了Webdriver。它在重复声明驱动程序。只需删除,WebDriver驱动程序;从儿童班开始,此问题已解决