在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也是密封的,所以不能继承。
有什么建议吗?
答案 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; }
}