我正在使用Selenium为我的网站构建测试框架,在使用页面对象模型时,我实际上想要您对良好实践的想法: 让我们说我有一个欢迎页面,其中包含一个存在注销按钮的标题,这个标题可以在我的大多数页面中看到 我认为最好为标题编写一个单独的类 像这样的东西:
{
[FindsBy(How = How.Name, Using = "welcome-message")]
public IWebElement LblWelcomeMessage { get; set; }
}
公共类WelcomePage
public void LogoutTest() {
LoginPage loginpage = new LoginPage();
loginpage.GoTo();
loginpage.login("user", "pass");
Header header = new Header();
header.Logout();
Assert.IsTrue(loginpage.IsAt());
}
我的问题是,你认为最好将Header作为欢迎页面中的属性包含在内,还是应该将它们分开?
让我们以Logout测试方法的代码为例:
案例1:
public void LogoutTest() {
LoginPage loginpage = new LoginPage();
loginpage.GoTo();
loginpage.login("user", "pass");
WelcomePage wlcmPage = new WelcomePage();
WelcomePage.Logout();
Assert.IsTrue(loginpage.IsAt());
}
案例2:
public static void Wait(int seconds)
{
Driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(seconds));
}
第二个问题是,您如何考虑为驱动程序编写静态类而不是为每个页面编写单独的驱动程序。
第三个将是你如何建议使用等待? 我正在考虑将此方法添加到我的驱动程序静态类
JavaConversions
任何想法都将受到高度赞赏
答案 0 :(得分:2)
这是我在使用框架时遵循的概念:
希望有所帮助!
答案 1 :(得分:2)
下面的代码只是一个代表代码,您可能需要添加更多行,例如Page Factory等。
public class driverConfig{
Static WebDriver driver;
public Static WebDriver getDriver{
driver = new WebDriver();
//Navigate to the URL here
return driver;
}
}
public Class PageClass{
public WebDriver driver;
public PageClass(){
driver = driverConfig.getDriver();
}
}