【发布时间】:2016-12-27 17:03:18
【问题描述】:
我正在使用带有 Selenium 的页面对象模型为网站构建测试框架
我在想,一般来说,如果我有两个具有确切用户控件和功能但 URL 不同的页面,我应该创建一个父页面类,其中有两个继承自它的类。 但是,如果我有相同的两个页面,但有不同的控件定位器怎么办?你怎么看?你认为为每个页面创建一个完全独立的类会是一个好习惯吗?或者有没有办法让子类覆盖定位器?知道我正在使用 PageFactory。
这是一个例子
public class Header
{
[FindsBy(How = How.ClassName, Using = "logout_button")]
public IWebElement BtnLogout { get; set; }
public Header()
{
PageFactory.InitElements(Browser.Driver, this);
}
public void Logout()
{
this.BtnLogout.Click();
}
}
public class SecondHeader
{
[FindsBy(How = How.ClassName, Using = "logout")]
public IWebElement BtnLogout { get; set; }
public Header()
{
PageFactory.InitElements(Browser.Driver, this);
}
public void Logout()
{
this.BtnLogout.Click();
}
}
【问题讨论】:
-
使用继承,构建父(父)页面并将定位器值作为参数传递以获取控件。 HTH。
-
使用时如何传递定位器[FindsBy(How = How.method, Using = value)]
-
你能快点把示例代码贴在这里吗?
-
@MuralidharanDeenathayalan 发布更新
标签: c# selenium selenium-webdriver pageobjects