我已经使用Selenium用Java编写了代码。当我运行代码时,它将引发NullPointerException。检查以下异常
Exception in thread "main" java.lang.NullPointerException
at AdminInterface.loginApplication(AdminInterface.java:17)
at AdminInterface.main(AdminInterface.java:29)
我的代码如下:
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
public class AdminInterface {
public WebDriver driver;
public void launchApplication() throws Exception
{
System.setProperty("webdriver.ie.driver", "C:\\Users\\rprem\\Downloads\\IEDriverServer_x64_3.4.0\\IEDriverServer.exe");
driver = new InternetExplorerDriver();
driver.get("https://www.gcrit.com/build3/admin/");
}
public void loginApplication(String Username, String Password)
{
driver.findElement(By.name("username")).sendKeys(Username);
driver.findElement(By.name("password")).sendKeys(Password);
driver.findElement(By.id("tbd1")).click();
}
public void closeBrowser()
{
driver.close();
}
public static void main(String[] args)
{
AdminInterface obj = new AdminInterface();
obj.loginApplication("admin", "admin@123");
}
}
您会看到一个NullPointerException
原因,因为main()
您从一开始就尝试访问该loginApplication()
方法,这需要in的活动实例,WebDriver
即driver
to
findElement(By.name("username"));
&findElement(By.name("password"));
and
perform sendKeys()
方法HTML DOM
。
解决方案是先访问该launchApplication()
方法,以便您拥有driver
and 的活动实例IE Browser
。接下来,您可以访问loginApplication()
方法。
这是您的工作代码块:
package demo;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
public class Q45474353_NPE
{
public WebDriver driver;
public void launchApplication()
{
System.setProperty("webdriver.ie.driver", "C:\\Utility\\BrowserDrivers\\IEDriverServer.exe");
driver = new InternetExplorerDriver();
driver.get("https://www.gcrit.com/build3/admin/");
}
public void loginApplication(String Username, String Password)
{
driver.findElement(By.name("username")).sendKeys(Username);
driver.findElement(By.name("password")).sendKeys(Password);
driver.findElement(By.id("tbd1")).click();
}
public void closeBrowser()
{
driver.close();
}
public static void main(String[] args)
{
Q45474353_NPE obj = new Q45474353_NPE();
obj.launchApplication();
obj.loginApplication("admin", "admin@123");
obj.closeBrowser();
}
}
我使用Selenium编写了Java代码。当我运行代码时,它会抛出NullPointerException。检查下面的异常 我的代码如下:
问题内容: 我为按钮添加了图像,但是当我运行该框架时,将抛出此异常。为什么?请帮助我。 第138行: 第91行: 我使用了此检查不当(建议使用Peter Lang):System.out.println(getClass()。getResource(“ / Images / yahoo_1.gif”)); 它返回null,为什么?请帮我。 问题答案: 这意味着,将返回。 JavaDoc指出,如果
问题内容: 这是我的整个源代码: 代码卡在了 fmt.Println(“ enq =”,t)上, 但是我不知道为什么,这太奇怪了。 问题答案: deQueue在失败情况下无限循环,这阻塞了CPU。Goroutine在执行CPU工作时不会屈服。GOMAXPROCS必须大于等于2才能获得CPU并行性。 只是为了踢,这是使用高阶通道的线程安全,无阻塞队列实现:https : //gist.github.
我有一个JavaFX应用程序,可以拍摄节点的屏幕截图/快照。截图的代码如下所示: 其中是一个。通常情况下,这很正常,但是当太大时(我的意思是,在10240x5548像素的顺序上),我得到了这个异常: 这种情况并不常见,但我仍然希望处理这种情况,即使只是告诉用户不支持这种解决方案。问题是堆栈跟踪根本不涉及我的代码。我的代码中没有一行。我猜这是一个由我调用的东西触发的线程,它会在线程崩溃后立即返回。
下面的代码抛出,但我不明白为什么,该对象不是null。
我想了解为什么一段代码不会抛出NullPointerException。 请考虑以下代码: 方法被重复调用,同时以下代码在单独的线程中运行: 只有一个实例。 从不引发NullPointerException。 但是,当方法暂停时,即使暂停0毫秒,也会按预期引发NullPointerException: 我的理解是,在理论上,在检查和调用之间存在竞争条件。在实践中,如果不引入暂停(即从后续方法调用中