我正在使用Pageobjects来运行我的脚本。我声明了两个包 - 一个用于Pageobject定义,另一个用于TestNGclasses。假设如果我在Package-1中有3个类,那么我相应地在package-2中有3个测试类。
截至目前,我在Package-1中有2个类(Login和home),在Package-2中有相同的测试类
我在package-2中的LoginTest.java中声明了驱动程序,如下所示;
public static WebDriver driver = new FirefoxDriver();
@BeforeMethod
public void Setup(){
driver.get(StringUrl);
driver.manage().window().maximize();
}
现在,当我调用HomeTest.java时,它显示Null Pointer Exception;如何声明webdriver一次并在多个测试类中使用它的实例?
public class searchPOTest {
private WebDriver driver;
public void HomePOTest(WebDriver driver){
this.driver = driver;
}
@Test(priority=1)
public void testvalidsearchnInputs() throws Exception {
//homePagePO.doaSearch("Google");
homePagePO homeTosearch = PageFactory.initElements(driver, homePagePO.class);
searchResultPO toSearch = homeTosearch.search("Google");
}
答案 0 :(得分:0)
您可以通过扩展课程来实现。例如,在selenium框架中found here ..
有这样的设置:
class AutomationTest {
public AutomationTest() {
driver = new Driver();
}
}
class MyTest extends AutomationTest {
@Test
public void doThis() {
driver.findElement... // driver will not be null now.
}
}
您当然可以使用@Before
方法而不是构造函数。