您好我收到以下错误,有人可以帮我解决下面的代码,
package testngpackg;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class ARXNewTest {
ChromeDriver driver;
@BeforeMethod
public void set() {
//ProfilesIni profile = new ProfilesIni();
//FirefoxProfile testprofile = profile.getProfile("default");
// testprofile.setAcceptUntrustedCertificates(true);
//testprofile.setAssumeUntrustedCertificateIssuer(true);
System.setProperty("webdriver.chrome.driver", "C:\\Selenium Web Driver 3.0.1\\geckodriver-v0.12.0-win32\\geckodriver.exe");
WebDriver driver = new ChromeDriver();
String baseURL = "<URL>";
driver.get(baseURL);
driver.manage().timeouts().implicitlyWait(60,TimeUnit.SECONDS);
}
@Test
public void OpenBrowser() {
driver.findElement(By.linkText("Log In")).click();
driver.switchTo().frame(0);
driver.findElement(By.id("tx_username")).sendKeys("my email id");
}
}
错误
失败:OpenBrowser
java.lang.NullPointerException
at testngpackg.ARXNewTest.OpenBrowser(ARXNewTest.java:30)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source) at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:100)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:646)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:811)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1129)
执行上面的代码
时出现零点错误答案 0 :(得分:1)
您发现NullPointerException导致驱动程序在该点之前未初始化。您尝试在beforeMethod()方法中初始化WebDriver实例,但它是本地的。
使用以下代码:
driver = new ChromeDriver();
相反
WebDriver driver = new ChromeDriver();
希望它会对你有所帮助。
答案 1 :(得分:0)
以下是您的问题的解决方案 -
关于解决方案的几句话:
ChromeDriver driver;
但未在任何地方使用过它。//ProfilesIni profile = new ProfilesIni();
System.setProperty
中,您提到Key
为webdriver.chrome.driver
,但您提供的value
为C:\\Selenium Web Driver 3.0.1\\geckodriver-v0.12.0-win32\\geckodriver.exe
{
&amp; }
所以你不会遇到意想不到的结果。OpenBrowser()
方法与浏览器打开无关。以下是您自己的代码的工作集,其中包含一些最小的调整:
public class Q43910679_null_pointer
{
@BeforeMethod
public void set()
{
System.setProperty("webdriver.chrome.driver", "C:\\Utility\\BrowserDrivers\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
String baseURL = "https://gmail.com";
driver.get(baseURL);
driver.manage().timeouts().implicitlyWait(60,TimeUnit.SECONDS);
}
@Test
public void OpenBrowser()
{
System.out.println("Open Browser Method");
}
}
如果这回答你的问题,请告诉我。