刚刚开始学习selenium-webdriver并尝试过......这里是我的dout吗?
下面创建了一个功能导航到谷歌主页
package UtilityGoogle;import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver;
public class HomePage { WebDriver WD=null;
public static void main(WebDriver WD) { // TODO Auto-generated method stub WD = new FirefoxDriver(); WD.navigate().to("https://www.google.co.in"); WD.manage().window().maximize(); return; }
以及代码调用主页功能..
package GoogleMain;
import org.openqa.selenium.WebDriver;
import org.testng.AssertJUnit;
import org.testng.annotations.Test;
import UtilityGoogle.HomePage;
public class Google_Tc1 {
private static WebDriver XP = null;@
Test
public void Open() {
HomePage HP = new HomePage();
String actual = XP.getTitle();
String expected = "Google";
AssertJUnit.assertEquals(expected, actual);
}
}
获得以下错误....请帮我解决此问题
FAILED: Open
java.lang.NullPointerException
at GoogleMain.Google_Tc1.Open(Google_Tc1.java:13)
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)
答案 0 :(得分:0)
您可以在此处将WebDriver设置为null
:
private static WebDriver XP = null;
然后在您的Open()
方法中尝试使用它:
String actual = XP.getTitle();
堆栈跟踪通知您:
at GoogleMain.Google_Tc1.Open(Google_Tc1.java:13)
所以要修复它,请指定XP
答案 1 :(得分:0)
您的WebDriver XP
instrance变量永远不会被初始化。 main
中的HomePage
方法永远不会被调用,即使它被调用也没关系,因为它不会操纵您尝试在测试中使用的XP
变量。
我相信这是你想要实现的目标:
public class HomePage {
public HomePage(WebDriver driver) {
driver = new FirefoxDriver();
driver.navigate().to("https://www.google.co.in");
driver.manage().window().maximize();
}
}
测试类:
public class GoogleTest {
private static WebDriver driver;
@Test
public void Open() {
HomePage homePage = new HomePage(driver);
String actual = driver.getTitle();
String expected = "Google";
AssertJUnit.assertEquals(expected, actual);
}
}
现在,当您创建HomePage
的实例作为参数传递驱动程序时,驱动程序已初始化并可以使用。
我更改了变量名称,因为您使用的名称并不好。你应该阅读this。我也认为还有很多其他改进的余地。您可能应该阅读页面对象模型here和here,并尝试坚持使用它。
答案 2 :(得分:0)
就像你在Homepage课程的主要方法WD = new FirefoxDriver();
中初始化WD一样
同样,你必须在使用之前初始化XP。
package GoogleMain;
import org.openqa.selenium.WebDriver;
import org.testng.AssertJUnit;
import org.testng.annotations.Test;
import UtilityGoogle.HomePage;
public class Google_Tc1 {
private static WebDriver XP = new FirefoxDriver();@
Test
public void Open() {
HomePage HP = new HomePage();
String actual = XP.getTitle();
String expected = "Google";
AssertJUnit.assertEquals(expected, actual);
}
}

答案 3 :(得分:0)
public class GoogleTest {
private static WebDriver driver;
@Test
public void Open() {
HomePage homePage = new HomePage(driver);
String actual = driver.getTitle();
String expected = "Google";
AssertJUnit.assertEquals(expected, actual);
}
}