尝试查找Webelement时,Webdriver selenium,java.lang.NullPointerException
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了尝试查找Webelement时,Webdriver selenium,java.lang.NullPointerException,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3452字,纯文字阅读大概需要5分钟。
内容图文
![尝试查找Webelement时,Webdriver selenium,java.lang.NullPointerException](/upload/InfoBanner/zyjiaocheng/690/cd3add7c321e4409a17e4dac838476dc.jpg)
编写了完整的代码以从excel中获取数据并登录到Gmail,但是在尝试这样做时,我的浏览器已经打开,并且还打开了所需的页面,并且从excel中选择了登录ID,并将其存储在变量sUsername中,但无法找到xpath as- element = driver.findElement(by.id(“ Email”));但是当我打印元素时,它保存为“ null”,如预期的那样是定位器ID的某个地址.此外,通过使用id的地址,我将可以使用sendkeys在文本框中输入电子邮件地址.
但是显示了以下错误:
java.lang.NullPointerException
at appModules.SignIN.Execute(SignIN.java:21)
登录类-存在定位器问题的位置:at-Login1.userName(driver).sendKeys(sUsername);
public class Login1 {
//private static WebDriver driver=null;
private static WebElement element=null;
public static WebElement userName(WebDriver driver)
{
try {
System.out.println("aaa");
System.out.println("bb");
element=driver.findElement(By.name("Email"));
System.out.println("ccc");
} catch (Exception e) {
// TODO: handle exception
System.out.println(element);
}
return element;
}
public static WebElement btn_login(WebDriver driver)
{
element= driver.findElement(By.id("next"));
return element;
}
public static WebElement passWord(WebDriver driver)
{
element= driver.findElement(By.id("Passwd"));
return element;
}
public static WebElement btn_SignIN(WebDriver driver)
{
element= driver.findElement(By.id("signIn"));
return element;
}
}
这是SigniN类,其中我正在获取Java空指针异常-问题存在:at- Login1.userName(driver).sendKeys(sUsername);
public class SignIN {
private static WebDriver driver=null;
public static void Execute (int iTestCaseRow)
{
String sUsername=ExcelUtils1.getCellData(iTestCaseRow,Constant1.col_UserName);
System.out.println(sUsername);
//driver.ma3nage().window().maximize();
//driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);
Login1.userName(driver).sendKeys(sUsername);
//driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);
Login1.btn_login(driver).click();
String pass=ExcelUtils1.getCellData(iTestCaseRow, Constant1.col_password1);
Login1.passWord(driver).sendKeys(pass);
Login1.btn_SignIN(driver).click();
}
}
这是我实例化浏览器的地方-
public class Utils1 {
public static WebDriver driver;
public static WebDriver OpenBrowser(int iTestCaseRow) {
String sBrowserName;
System.out.println(iTestCaseRow);
sBrowserName = ExcelUtils1.getCellData(iTestCaseRow,
Constant1.col_browser);
if (sBrowserName.equals("Mozilla")) {
driver = new FirefoxDriver();
// Log.info("New driver instantiated");
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
// Log.info("Implicit wait applied on the driver for 10 seconds");
driver.get(Constant1.URL);
// Log.info("Web application launched successfully");
}
return driver;
}
}
解决方法:
在内部处理以及明确的等待定位元素是一个好习惯.如果有与页面相关的活动,则还需要使用等待页面加载.
请遵循以下代码
内部等待
protected WebElement waitForPresent(final String locator) {
// timeout is your default wait timeout in long.
return waitForPresent(locator, timeout);
}
明确等待
protected WebElement waitForPresent(final String locator, long timeout) {
WebDriverWait wait = new WebDriverWait(driver, timeout);
WebElement ele = null;
try {
ele = wait.until(ExpectedConditions
.presenceOfElementLocated(locator));
} catch (Exception e) {
throw e;
}
return ele;
}
protected WebElement waitForNotPresent(final String locator, long timeout) {
timeout = timeout * 1000;
long startTime = System.currentTimeMillis();
WebElement ele = null;
while ((System.currentTimeMillis() - startTime) < timeout) {
try {
ele = findElement(locator);
Thread.sleep(1000);
} catch (Exception e) {
break;
}
}
return ele;
}
内容总结
以上是互联网集市为您收集整理的尝试查找Webelement时,Webdriver selenium,java.lang.NullPointerException全部内容,希望文章能够帮你解决尝试查找Webelement时,Webdriver selenium,java.lang.NullPointerException所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。