“接收”;“线程中的异常”;“主要”;java.lang.NullPointerException“;使用硒时

“接收”;“线程中的异常”;“主要”;java.lang.NullPointerException“;使用硒时,java,selenium,Java,Selenium,在Selenium WebDriver中使用此类时: package Selenium3; import java.util.ArrayList; import java.util.List; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; public class Jobs { static WebDriver drive

在Selenium WebDriver中使用此类时:

package Selenium3;

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

public class Jobs {

static WebDriver driver;

public Jobs(WebDriver driver) {
    this.driver = driver;
}

public static void con() throws InterruptedException {
    List<WebElement> element = driver.findElements(By.cssSelector(".position_title.ng-binding"));
    for (int i = 0; i < element.size(); i++) {
        Thread.sleep(2000);
        String u = element.get(i).getText();
        if (u.contains("Java"));
        System.out.println(u);
    }
  }
}
包装硒M3;
导入java.util.ArrayList;
导入java.util.List;
导入org.openqa.selenium.By;
导入org.openqa.selenium.WebDriver;
导入org.openqa.selenium.WebElement;
公营职位{
静态网络驱动程序;
公共作业(网络驱动程序){
this.driver=driver;
}
public static void con()引发InterruptedException{
List元素=driver.findElements(By.cssSelector(“.position\u title.ng binding”);
对于(int i=0;i

驱动程序总是空的。最后,我想从我的主类调用这个方法。我做错了什么?

您有一个
静态方法(不需要类实例化)。。。因此,当您在不实例化类的情况下调用该方法时,您不会初始化驱动程序:

您有多种解决方案:

  • 使方法不
    静态
    (您将使用构造函数强制初始化驱动程序,但可以多次重用实例化的类)

  • 在方法静态调用之前,使用
    静态
    块初始化驱动程序
    (调用速度更快,但问题是您无法选择要使用的驱动程序实现)

    公共类作业{
    静态网络驱动程序;
    静止的{
    this.driver=new FirefoxDriver();//只是一个例子
    }
    public static void con()引发InterruptedException{
    List元素=driver.findElements(By.cssSelector(“.position\u title.ng binding”);
    对于(int i=0;i

您显然没有实例化驱动程序
WebDriver
的可能副本是一个接口。更改为
new FirefoxDriver()谢谢你,让我想到一个新的选项AsAfSaee,因为你是一个新用户,你从来没有标记过一个问题,我想你必须知道这个或任何答案是否已经解决了你的问题,请点击检查标记。这表明更广泛的社区你找到了一个损坏的损坏。解决方案,并给回答者和你自己带来一些声誉。当然,没有义务这样做。
public class Jobs {

    private WebDriver driver;

    public Jobs(WebDriver driver) {
       this.driver = driver;
    }

    public void con() throws InterruptedException {
        List<WebElement> element = driver.findElements(By.cssSelector(".position_title.ng-binding"));
        for (int i = 0; i < element.size(); i++) {
            Thread.sleep(2000);
            String u = element.get(i).getText();
            if (u.contains("Java"));
            System.out.println(u);
        }
}
public class Jobs {
    public static void con(WebDriver driver) throws InterruptedException {
        List<WebElement> element = driver.findElements(By.cssSelector(".position_title.ng-binding"));
        for (int i = 0; i < element.size(); i++) {
            Thread.sleep(2000);
            String u = element.get(i).getText();
            if (u.contains("Java"));
            System.out.println(u);
        }
}
public class Jobs {

    static WebDriver driver;

    static {
       this.driver = new FirefoxDriver(); // just an example
    }

    public static void con() throws InterruptedException {
        List<WebElement> element = driver.findElements(By.cssSelector(".position_title.ng-binding"));
        for (int i = 0; i < element.size(); i++) {
            Thread.sleep(2000);
            String u = element.get(i).getText();
            if (u.contains("Java"));
            System.out.println(u);
        }
}