java.lang.NullPointerException-硒java testng

丘帕卡布朗人

昨天我的测试正常,我想用testng破产,然后出现了问题。我的主要课程LeadTest:

public class leadTest {
    WebDriver driver;
  @Test
  public void f() {


 .. 
...
...
            /*------------------------Go to leads page-------------------------------*/
        LeadsPage ldsP = new LeadsPage(driver);

        dbp.gotoLeadsPage();

        ldsP.findLeadByName("nameToFind");

    }


  @BeforeClass
  public void beforeClass() {
        driver = new FirefoxDriver();
        driver.get("http://getbase.com");
        driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
  }

和我的班级LeadsPage:

public class LeadsPage {
    WebDriver driver;
String expStatus = "new";

@FindBy(id="leads-new")
WebElement addLead;

@FindBy(className = "lead-status")
WebElement UserStatus;


public void addNewLead(){
    addLead.click();
}

public void checkUsrStat(){
    String stat = UserStatus.getText().toLowerCase();
    Assert.assertEquals(stat, expStatus.toLowerCase());

}

public void findLeadByName(String leadName){

    driver.findElement(By.partialLinkText(leadName)).click();       
}

public LeadsPage(WebDriver driver){
        PageFactory.initElements(driver, this);

}

我从上面有这部分的问题:

public void findLeadByName(String leadName){

    driver.findElement(By.partialLinkText(leadName)).click();       
}

我有错误

    AILED: f
java.lang.NullPointerException
    at leadTest.LeadsPage.findLeadByName(LeadsPage.java:38)
    at leadTest.leadTest.f(leadTest.java:101)
    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:84)
    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:1224)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1149)
    at org.testng.TestNG.run(TestNG.java:1057)
    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:111)
    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175)

当我使用

@FindBy(partialLinkText="nameToFind")
WebElement ntf;

ntf.click();

它的工作,但我不能做到这一点,因为在地方nameToFind将是可变的。

我不知道怎么了...请帮帮我

莫娜

驱动程序变量未初始化:您尝试在空对象上调用findElement()方法。

确认的一种方法是打印驱动程序值:

System.out.println("driver=" + driver); 就在抛出异常之前

public void findLeadByName(String leadName){

System.out.println("driver=" + driver);
    driver.findElement(By.partialLinkText(leadName)).click();       
}

我也注意到了

LeadsPage ldsP = new LeadsPage(driver);

        dbp.gotoLeadsPage();

        ldsP.findLeadByName("nameToFind");

gotoLeadsPage(); 和findLeadByName(); 两种功能都在同一类LeadsPage中,但是使用不同的对象dbp和ldsp

可能在下面的更改会起作用。

在LeadsPage类中,更改您的findLeadByName(); 功能如下

public void findLeadByName(WebDriver driver, String leadName){

    this.driver.findElement(By.partialLinkText(leadName)).click();       
}

在您的类LeadTest调用函数findLeadByName()中,如下所示:

LeadsPage ldsP = new LeadsPage(driver);
ldsP.findLeadByName(driver ,"nameToFind");

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在testng中使用@DataProvider在数据驱动的测试中获取错误java.lang.NullPointerException

java.lang.NullPointer异常(TestNG)

无法从TestNG Class-> java.lang.NullPointerException调用两个单独的类的属性

遇到java.lang.NullPointerException

TestNG Selenium ChromeDriver:java.lang.NoSuchMethodError

执行Selenium脚本时出错-java.lang.NullPointerException-TestNG

Jmeter java.lang.NullPointerException

java.lang.NullPointerException出现

java.lang.NullPointerException OnItemClickListener

java.lang.NullPointerException?

JDBC:java.lang.NullPointerException

java.lang.NullPointerException错误

java.lang.NullPointerException错误?

mainactivity-java.lang.NullPointerException

java.lang.nullpointerexception错误

Testng抛出java.lang.IllegalMonitorStateException

TestNG:@Test方法中的java.lang.NullPointerException

java.lang.NullPointerException :(片段)

java.lang.NullPointerException错误

java.lang.NullPointerException PrintWriter

硒POM java.lang.NullPointerException

getResourceAsStream 的 java.lang.NullPointerException

使用 TestNG @DataProvider,它在调用返回 Object[][] 的 method() 时返回“[Utils] [ERROR] [Error] java.lang.NullPointerException”

java.lang.NullPointerException: uriString

Java/Selenium - java.lang.NullPointerException

获取 java.lang.ClassNotFoundException: org.testng.TestNG 错误

引起:java.lang.NullPointerException:

Appium、Java 和 Testng - 找出 NullPointerException 的原因

执行 TestNG 套件后显示错误 'java.lang.NullPointerException DefaultElementLocator.findElement(DefaultElementLocator.java:69)'