Selenium覆盖派生类中的FindsBy属性

时间:2017-10-11 09:19:25

标签: c# selenium attributes override

我使用带有PageFactory的Page Object Model模式来初始化IWebElement属性/字段。我的问题是,我想要使用不同的[FindsBy]属性覆盖IWebElement的派生类。我的基类:

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属性初始化为base属性(id为#34; ctl00_contents_ctl27),而是覆盖了一个(id为otherId)。如何强制覆盖属性以使用其FindsBy属性进行初始化?

此致

Cybul26

1 个答案:

答案 0 :(得分:0)

为什么不删除ConfigurationMenuPage中的声明并让派生类声明它?一种解决方法是使用带有OR运算符的CSS选择器#ctl00_contents_ctl27, #otherId