当前位置: 首页 > 知识库问答 >
问题:

使用TestNG在Selenium WebDriver中获取空指针异常

单琛
2023-03-14

我是Selenium的新手,在运行下面的脚本时,我会遇到空指针异常,一旦站点调用loads,测试就会停止运行。我无法理解例外的原因。

代码如下:

package TestNGPackage;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.support.ui.*;
import org.openqa.selenium.firefox.*;
import org.openqa.selenium.*;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeTest;

public class ParameterizationTest {
WebDriver driver;
  @Test(dataProvider="getdata")
  public void Login(String Username, String Password) 
  {
    //WebDriverWait wait= new WebDriverWait(driver,60);
    //WebElement username= wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("username")));
    WebElement username=driver.findElement(By.id("username"));
        WebElement password= driver.findElement(By.id("password"));
        username.sendKeys(Username);
        password.sendKeys(Password);
        WebElement SignIn= driver.findElement(By.tagName("button"));
        String text = SignIn.getText();
        if (text.equalsIgnoreCase("sign in")) {
            // sign in btn
            SignIn.submit();
        }
  }

  @DataProvider(name="getdata")
  public Object[][] testgetdata()
  {
      Object[][] data = new Object[3][2];
      //row1
      data[0][0]="ho@abc.com";
      data[0][1]="welcome23";
      //row2
      data[1][0]="ho@baskin.com";
      data[1][1]="welcome23";
      //row3
      data[2][0]="ho@nike.com";
      data[2][1]="welcome23";

      return data;
  }

  @BeforeMethod
  public void beforeTest() {
      WebDriver driver = new FirefoxDriver();

      driver.get("http://52.25.202.63/illweb/");
    //  driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

  }

  @AfterMethod
  public void AfterTest() {
      //driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
        WebElement logout = driver.findElement(By.linkText("Logout"));
        logout.click();
        //driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
        driver.close();

  }
}

我得到以下错误:

请帮助我,我做错了什么,提前感谢!

共有1个答案

秦浩漫
2023-03-14

您发现一个NullPointerException原因驱动程序未在该点之前初始化。您试图在beforeTest()方法中初始化WebDriver实例,但它是本地的。要解决此问题,只需在beforeTest()方法中初始化该WebDriver,而无需重新声明为:

driver = new FirefoxDriver();

不是的

WebDriver driver = new FirefoxDriver();

由于同样的原因,第二个NullPointinterOut的原因是引起的。

 类似资料:
  • 我正在使用CSV reader从获取数据,并在使用DataProvider的测试函数中使用该数据。

  • 我现在使用的是Itext PDFSmartCopy。我正在使用XMLWorker向document对象添加一些业务内容。然后我声明了一个阅读器(用于连接到此文档对象的pdf文件)。然后我用相同的文档对象和输出文件流作为参数调用PdfSmartCopy。然后使用常规步骤将页面复制到文档中, 但如果我使用一个新的文档对象ie而不添加业务内容,则这一块工作得很好。

  • 我试图存根这个方法:QueryUtils.to顺序(排序,根,构建器)和我正在做 但它进入queryUtils方法体,它会说Sort为null,并抛出一个NPE。但是,当它是存根时,为什么需要进入方法体?我以前没有遇到过这个问题,我认为它不应该关心该方法的内部逻辑是什么。

  • 我正在尝试使用selenium webdriver、testng和page Factory实现自动化。但我面临空指针异常。

  • 我在运行一个简单的helloworld示例drools项目时遇到了以下错误。 代码: 口水代码:

  • 问题内容: 有可能这可能是一个双重问题。我将String变量初始化为null。我可能会或可能不会使用一个值更新它。现在我想检查此变量是否不等于null以及我尝试执行的操作是否会得到null指针异常。空指针异常,因为它代价高昂。是否有任何有效的解决方法.TIA 问题答案: 如果您使用 你 不会 得到。 我怀疑你在做什么: 这是因为null 而引发,而不是因为null。 如果仍然无法解释,请发布您用于