在并行运行测试中调用 PageFactory.InitElements



并行运行测试时如何调用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.
}

最新更新