我有2个班级
1.BROWSER ---这个类有加载浏览器的方法,以便我可以调用我的每个测试用例 2.LOCATORS - 这个类包含存储所有webelements的方法
3.NEW TEST-这是我的测试用例,我在其中调用了#34;浏览器"和#34;定位器"类...
以下是我的浏览器类
浏览器课程
package TestProject.TestProject;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class Browser {
WebDriver driver;
public Browser (WebDriver driver) {
this.driver = driver;
}
public WebDriver GetBrowser()
{
System.setProperty("webdriver.chrome.driver", "E:\\chromedriver.exe");
driver = new ChromeDriver();
String baseurl = "https:\\live.guru99.com\\index.php\\";
driver.get(baseurl);
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
return driver;
}
}
以下是我的Locator类
package TestProject.TestProject;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
public class Locators {
WebDriver driver;
//Locators
By mobile = By.xpath("//a[contains(.,'Mobile')]");
public Locators (WebDriver driver){
this.driver = driver;
}
public void mobile()
{
driver.findElement(mobile).click();
}
}
我的测试案例
package TestProject.TestProject;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeTest;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.AfterTest;
public class NewTest {
WebDriver driver;
@BeforeTest
public void beforeTest() {
Browser load = new Browser(driver);
driver =load.GetBrowser();
}
@Test
public void VerifyMobile() {
Locators mobilemenu = new Locators(driver);
mobilemenu.mobile();
}
@AfterTest
public void afterTest() {
}
}
答案 0 :(得分:3)
您获得NullPointerException
,因为您使用的是未初始化的WebDriver
下面的代码会给您带来麻烦。您正在将空驱动程序传递给Browser
类...然后您可能会对它执行某些操作,但您没有返回任何已初始化的WebDriver
public class NewTest {
WebDriver driver;
@BeforeTest
public void beforeTest() {
Browser load = new Browser(driver);
load.GetBrowser();
}
试试这个:
public WebDriver GetBrowser() {
System.setProperty("webdriver.chrome.driver", "E:\\chromedriver.exe");
driver = new ChromeDriver();
String baseurl = "https:\\live.guru99.com\\index.php\\";
driver.get(baseurl);
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
return driver;
}
您会将初始化的WebDriver
返回给您的测试,如下所示:
driver = load.GetBrowser();
答案 1 :(得分:1)
由于NullPointerException
方法中的WebDriver对象尚未初始化并且因此为空,因此必须提供@BeforeTest
。
Browser load = new Browser(driver);
此处,驱动程序对象尚未初始化。
<强>建议:强>
不是调用GetBrowser()方法,而是在Browser类构造函数中初始化WebDriver对象,并继承Browser类,并在需要时使用WebDriver对象。