2017-10-11 99 views
0

我使用頁面對象模型模式和PageFactory來初始化IWebElement屬性/字段。我的問題是,我想要派生類與不同的[FindsBy]屬性重寫了IWebElement。我的基類:Selenium覆蓋派生類中的FindsBy屬性

public class ConfigurationMenuPage : PageInfo, IConfigurationMenuPage 
{ 
    private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); 

    [FindsBy(How = How.Id, Using = "ctl00_contents_ctl27")] 
    protected virtual IWebElement _campaignsConfigLink { get; set; } 

我的派生類:

public class ConfigurationMenuPage21 : ConfigurationMenuPage 
{ 
    [FindsBy(How = How.Id, Using = "otherId")] 
    protected sealed override IWebElement _campaignsConfigLink { get; set; } 

的問題是,_campaignsConfigLink財產與基礎屬性初始化(ID爲「ctl00_contents_ctl27),而不是overrided一個(id爲otherId)如何。我可以強制overrided屬性初始化其屬性FindsBy?

問候,

Cybul26

回答

0

爲什麼不只是刪除ConfigurationMenuPage中的聲明並讓派生類聲明它?一種解決方法是使用帶有OR運算符的#ctl00_contents_ctl27, #otherId的CSS選擇器。

+0

感謝您的重播。我決定'ConfigurationMenuPage'是一個具有抽象屬性的抽象類,並讓派生類聲明它的屬性。 –