并行运行测试时如何调用PageFactory.InitElements(driver, this)
?我需要:页面课程中的钩子吗?我是否应该在测试中将驱动程序传递给页面,如下所示:
Login pgLogin = PageFactory.InitElements(driver, Login.class);
我怀疑我是第一个使用页面对象模型 + 页面工厂 + C# + NUnit3 构建框架以在 Selenium Grid 上并行测试的人......但找不到很多例子。大多数都非常简单,在一种方法中描述了驱动程序设置和测试,但是当通过多个测试和引用 Page.cs 中的对象来增加复杂性时,需要额外的逻辑,我只是不知道。
代码如下:
登录.cs
测试.cs
基地.cs
钩子.cs
您可以将驱动程序对象传递给页面对象类:
测试方法如下所示:
WebDriver driver;
public void yourTest(){
Login login = new Login(driver);
your rest of the code ......
}
页面对象类 :
class Login{
WebDriver driver;
public Login(WebDriver driver){
this.driver = driver;
PageFactory.InitElements( this.driver, this);
............... your code
}
// required page elements like txtEmail.
}