尝试查找 WebElement 时出现 Selenium NullPointerException
Selenium NullPointerException while trying to find WebElement
在尝试执行以下方法时,我收到 NullPointerException:
@Test
public static void test1() {
System.out.print("\nTo find UserName element");
WebElement element =driver.findElement(By.xpath("//input[@name='email']"));
WebElement element = driver.findElement(By.id("email"));
element.sendKeys("abhinav_shankar");
System.out.print("\nElement found");
System.out.print("\njunittest2 class-test1 executed before sleep");
Thread.sleep(15000);
System.out.print("\njunittest2 class-test1 executed after sleep");
}
以下异常在行 "WebElement element = driver.findElement(By.id("email"));"
Thread [main] (Suspended (exception NullPointerException))
Mytestclass.test1() line: 44
Mytestclass.main(String[]) line: 21
我尝试使用上面代码中编写的 xpath,但它也给出了同样的错误。
编辑:
@BeforeClass
public static void openbrowser() {
FirefoxProfile profile = new FirefoxProfile();
System.out.print("\nBrowser open");
WebDriver driver = new FirefoxDriver(profile);
driver.manage().window().maximize();
driver.get("website-url");
}
您似乎已经声明了两次 driver。一个在 class 级别,一个在 openbrowser 方法中。
您只初始化了 openbrowser 驱动程序。 class 级驱动程序仍然为空。所以,test1方法抛出空指针异常。
所以,去掉openbrowser方法中的驱动重声明。就这样就可以了,它应该可以工作。
driver = new FirefoxDriver(profile);
问题:
您的 Webdriver 对象似乎是在函数 openbrowser() 内声明的,因为驱动程序对象范围仅适用于该函数。所以 NullpointerException 可能是由于驱动程序造成的。
解决方法:
全局声明 Webdriver 并在 openbrowser 方法中初始化,以便您也可以在 test1() 或任何其他方法中使用它。
public WebDriver driver;
@BeforeClass
public static void openbrowser() {
//Driver initialization
}
@Test
public static void test1() {
//Use the driver here
}
在尝试执行以下方法时,我收到 NullPointerException:
@Test
public static void test1() {
System.out.print("\nTo find UserName element");
WebElement element =driver.findElement(By.xpath("//input[@name='email']"));
WebElement element = driver.findElement(By.id("email"));
element.sendKeys("abhinav_shankar");
System.out.print("\nElement found");
System.out.print("\njunittest2 class-test1 executed before sleep");
Thread.sleep(15000);
System.out.print("\njunittest2 class-test1 executed after sleep");
}
以下异常在行 "WebElement element = driver.findElement(By.id("email"));"
Thread [main] (Suspended (exception NullPointerException))
Mytestclass.test1() line: 44
Mytestclass.main(String[]) line: 21
我尝试使用上面代码中编写的 xpath,但它也给出了同样的错误。
编辑:
@BeforeClass
public static void openbrowser() {
FirefoxProfile profile = new FirefoxProfile();
System.out.print("\nBrowser open");
WebDriver driver = new FirefoxDriver(profile);
driver.manage().window().maximize();
driver.get("website-url");
}
您似乎已经声明了两次 driver。一个在 class 级别,一个在 openbrowser 方法中。
您只初始化了 openbrowser 驱动程序。 class 级驱动程序仍然为空。所以,test1方法抛出空指针异常。
所以,去掉openbrowser方法中的驱动重声明。就这样就可以了,它应该可以工作。
driver = new FirefoxDriver(profile);
问题: 您的 Webdriver 对象似乎是在函数 openbrowser() 内声明的,因为驱动程序对象范围仅适用于该函数。所以 NullpointerException 可能是由于驱动程序造成的。
解决方法: 全局声明 Webdriver 并在 openbrowser 方法中初始化,以便您也可以在 test1() 或任何其他方法中使用它。
public WebDriver driver;
@BeforeClass
public static void openbrowser() {
//Driver initialization
}
@Test
public static void test1() {
//Use the driver here
}