我如何使用POM和Testng在Selenium中的所有页面之间传输相同的驱动程序组件

时间:2018-06-20 07:22:25

标签: selenium automated-tests pom.xml

通常我要创建多个页面存储库和一个测试页面。如果要创建多个测试页面,即每个页面存储库的每个测试页面,那么我如何在不同的测试页面之间传输驱动程序小部件。

2 个答案:

答案 0 :(得分:0)

您可能会引入基类,这些基类将包含在多个页面之间共享的公共元素。

使用它们的方法也是如此。

您可以指定在其他语言中使用的语言以获得更具体的答案吗?

答案 1 :(得分:0)

尝试使用PageObject模式。 这是一个如何实例化驱动程序并在整个代码中进行传输的示例,这是自动化的最佳实践:

public class LoginPage {

private WebDriver driver;

@FindBy(how=How.NAME, using="username")
private WebElement txtUsername;

@FindBy(how=How.NAME, using="butonSubmit")
private WebElement buttonSubmit;


public LoginPage(WebDriver driver) {           
         this.driver = driver; 
         PageFactory.initElements(driver, this);
}

public void inputUsername(String username){
    txtUsername.sendKeys(username);
    return this;
}

public void clickSubmit(String username){
    buttonSubmit.click();
    return new MainPage(driver);
}

}

public class MainPage{
@FindBy(how=How.NAME, using="mainElement")
private WebElement mainElement;

....

public MainPage(WebDriver driver) {           
         this.driver = driver; 
         PageFactory.initElements(driver, this);
}


}

然后您的测试如下:

   @Test
   public void testLogin(){
      LoginPage loginPage = new LoginPage(driver);
      loginPage.inputUsername(test123);
      MainPage mainPage = loginPage.clickSubmit();
      ...
   }

这是您可以在所有页面上转移webDriver的方式,

花点时间研究一下PageObject Model模式,

这是一个出色的tutorial

希望我能帮忙...