我开始学习Selenium Webdriver。看起来很简单,但我不确定如何使用PageObject Pattern。我想,我理解这个想法,但我不知道如何在一个项目中映射多个页面。例如:该网站包含许多子网站(即登录页面,创建一个帐户页面),我想为每个子网站创建PageObject。当我执行我的脚本时,我收到的信息尚未找到。我该怎么办?我应该创建一个separete drviers还是什么?
答案 0 :(得分:2)
似乎你正在做的一切都是正确的:为每个页面创建一个新对象。为许多页面上的常见元素创建不同的对象(如页脚,页眉菜单等)。
然后要组合页面对象,首先需要从某处开始。例如,从您的主页。因此,使用MainPageObj
与主页进行交互。只要导航到另一个页面,就需要在MainPageObj
课程中使用方法。
此方法必须返回新页面的页面对象。因此,如果您从主页面打开“登录”页面,那么您的方法OpenLoginPage()
应该返回LoginPageObj.
示例: MainPageObj
和LoginPageObj
是页面对象类。
MainPageObj类有方法:
public LoginPageObj OpenLoginPage()
{
LoginButton.Click();
return new LoginPageObj();
}
所以以这种方式使用这个方法:
MainPageObj mainPage = new MainPageObj ();
LoginPageObj loginPage = mainPage.OpenLoginPage();
简单吗?)
如果你想使它更美化,那么添加静态类Pages并为你拥有的每个页面对象添加静态方法。每个方法都必须返回特定页面对象的新实例。
示例:强>
public static class RealSites
{
public static class Kinopoisk
{
public static Kinopoisk.MainPage MainPage
{
get { return new Kinopoisk.MainPage(); }
}
}
}
在你的测试中使用它是这样的:
Pages.RealSites.Kinopoisk.MainPage.OpenMoviePage(url);
Pages.RealSites.Kinopoisk.MoviePage.DoSomethigElseMethod();
答案 1 :(得分:0)
您可以参考此链接来了解页面对象模型,之后您还可以为您的应用程序创建
http://www.seleniumeasy.com/selenium-tutorials/simple-page-object-model-framework-example
如果你想学习,那么selenium easy是初学者学习的最佳网站。