Selenium WebDriver中的空指针异常

use*_*626 2 selenium

我正在使用下面的代码逐一点击导航链接,直到它通过使用WebDriver到达结束,但它抛出NullPointerException,混淆,因为我已经初始化并仍然面临这个问题,请帮助.

import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;


public class Exercise_dice {
    static WebDriver driver;
    public static void main(String[] args) {
        WebDriver driver=new FirefoxDriver();
        driver.get("http://www.dice.com");
        driver.findElement(By.xpath("//*[@id='FREE_TEXT']")).sendKeys("selenium");
        driver.findElement(By.xpath("//*[@id='searchSubmit']")).click();

        String part1= "//*[@id='yui-main']/div/div[1]/div[1]/div[1]/a[";
        String part2= "]";

        int i=1;
        while(isElementPresent(part1+i+part2)){
            String text= driver.findElement(By.xpath(part1+i+part2)).getText();
            System.out.println(text);
            driver.findElement(By.xpath(part1+i+part2)).click();
            i++;
        }
    }

    public static boolean isElementPresent(String element_xpath){
        int count=driver.findElements(By.xpath(element_xpath)).size();

        if (count == 0)
            return false;
        else 
            return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

Ric*_*ard 12

你的问题从这里开始,我相信:

static WebDriver driver;
public static void main(String[] args) {
    WebDriver driver=new FirefoxDriver();
Run Code Online (Sandbox Code Playgroud)

你已经宣布了driver两次.然后你使用未初始化driverisElementPresent.

我想你可以解决这个问题如下:

static WebDriver driver;
public static void main(String[] args) {
    driver=new FirefoxDriver();
Run Code Online (Sandbox Code Playgroud)

  • @ user3543626:关心接受答案呢?:) (2认同)