gpt4 book ai didi

java.lang.NullPointerException Selenium 2 类

转载 作者:行者123 更新时间:2023-11-30 10:16:37 25 4
gpt4 key购买 nike

当我的程序在我的本地机器上运行时没有使用带有远程 Web 驱动程序的 selenium 网格时,我的程序工作正常。但是,当我使用带有远程 Web 驱动程序的 Selenium 网格设置相同的测试用例时。在 eclipse 中获取消息说:

java.lang.NullPointerExceptionat PP_OBJ_Login.Adminlogin(PP_OBJ_Login.java:38)
at PP_Main.step01_Login(PP_Main.java:86)

现在我知道上面的意思是第 38 行和第 86 行是两个类中的问题所在我的问题是我不知道为什么当我将 selenium 网格与远程 Web 驱动程序一起使用时会发生这种情况。

public class PP_Main {

private static WebDriver driver;
private static String homeUrl;
//private String homeTitle ="Google";
@SuppressWarnings("unused")
private boolean acceptNextAlert = true;
private static StringBuffer verificationErrors = new StringBuffer();


@BeforeClass
public static void setUp() throws Exception {

//----------This works and envokes IE browser -------
System.setProperty("webdriver.ie.driver", "C:\\IEDriverServer.exe");
DesiredCapabilities cap = DesiredCapabilities.internetExplorer();
cap.setCapability(CapabilityType.BROWSER_NAME, DesiredCapabilities.internetExplorer());
cap.setBrowserName("internet explorer");
cap.setPlatform(Platform.ANY);
RemoteWebDriver driver = new RemoteWebDriver(new URL("http://51.19.210.111:5555/wd/hub"), cap);
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
String url = "https://wfn-iat.adp.com/public/index.htm";
driver.get(url);

}
@Test
public void step01_Login() throws Exception {
PP_OBJ_Login.AdminVisiable(driver);
PP_OBJ_Login.Adminlogin(driver).click();-- -> line 86
PP_OBJ_Login.UserName(driver).sendKeys("NorfolkAutoUser6@adp");
PP_OBJ_Login.Submitbtn(driver).click();
PP_OBJ_Login.Password(driver).sendKeys("iatiat01");
Thread.sleep(2000);
PP_OBJ_Login.Submitbtn(driver).click();
Thread.sleep(5000);
}


PP_OBJ_Login.Java


public class PP_OBJ_Login {

private static WebElement element = null;

// WebElement Adminlogin
public static WebElement Adminlogin(WebDriver driver) {-- -- -> Line 38
element = driver.findElement(By.id("adminLogin"));
return element;
}

// WebElement input Field
public static WebElement UserName(WebDriver driver) {
element = driver.findElement(By.id("USER"));
return element;
}

我希望它能使用 selenium 网格和远程网络驱动程序工作。有什么办法可以解决空指针问题吗?

最佳答案

您的问题是,您将“驱动程序”定义为类成员,但没有实例化它。所以它始终为空。

 public class PP_Main {

private static WebDriver driver;
private static String homeUrl;
//...

并且您在 setUp() 中实例化的驱动程序仅在方法本身内部有效。尽管它具有完全相同的名称,但它不是您在全局范围内定义的“驱动程序”。

@BeforeClass
public static void setUp() throws Exception {

// ...

cap.setPlatform(Platform.ANY);
RemoteWebDriver driver = new RemoteWebDriver(new URL("http://51.19.210.111:5555/wd/hub"), cap);

// ...
}

以这种方式实例化它

public class PP_Main {

private static RemoteWebDriver driver;
private static String homeUrl;
//...


@BeforeClass
public static void setUp() throws Exception {

// ...

cap.setPlatform(Platform.ANY);
driver = new RemoteWebDriver(new URL("http://51.19.210.111:5555/wd/hub"), cap);

// ...
}

这应该有效。

关于java.lang.NullPointerException Selenium 2 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49989155/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com