使用资源文件c#Selenium的FindsBy属性

时间:2017-01-30 12:00:45

标签: c# selenium selenium-webdriver pageobjects

在selenium中使用PageObject模式,我想将所有定位器放在资源文件中。

想知道是否可以将FindsBy属性与资源文件一起使用

[FindsBy(How = How.Id, Using = "btnUserApply")]
public Button ApplyButton { get; set; }

变为如下,出现错误而无法完成

 [FindsBy(How = How.Id, Using = MyRexFile.btnUserApply)]
 public Button ApplyButton { get; set; }

FindsBy也是密封的,所以不能继承。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

这是不可能的。 FindsBy注释接收const(在编译中评估)字符串作为Using参数。资源文件中的数据在运行时进行评估。

您可以创建另一个类来容纳所有定位器

public static class Locators
{
    public const string btnUserApply = "btnUserApply";
}

public class PageObject
{
    [FindsBy(How = How.Id, Using = Locators.btnUserApply)]
    public Button ApplyButton { get; set; }
}