“接收”;“线程中的异常”;“主要”;java.lang.NullPointerException“;使用硒时
在Selenium WebDriver中使用此类时:“接收”;“线程中的异常”;“主要”;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
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);
}
}