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

时间:2017-11-15 17:25:25

标签: c# selenium nunit

如何在并行运行测试时调用PageFactory.InitElements(driver, this)?我是否需要:在我的Page类中挂钩?我是否应该通过以下方式将驱动程序传递给我的测试页面:

    Login pgLogin = PageFactory.InitElements(driver, Login.class);

我怀疑我是第一个使用Page Object Model + Page Factory + C#+ NUnit3在Selenium Grid上并行测试构建框架的人。但是找不到很多例子。大多数都非常简单,描述了驱动程序设置和一个方法中的测试,但是当通过多个测试添加复杂性并引用Page.cs中的对象时,需要额外的逻辑,我只是​​不知道。

以下代码:

Login.cs

Test.cs

Base.cs

Hooks.cs

1 个答案:

答案 0 :(得分:0)

您可以将驱动程序对象传递给页面对象类:

测试方法如

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.
}