是否可以将定位器从属性文件传递到POM中的@FindBy注释?

时间:2017-03-06 12:49:53

标签: java selenium selenium-webdriver pom.xml

我已将所有<​​strong> xpaths 定位器 存储在属性文件中。我试图在Page Object Repository中使用它们,并按@FindBy注释查找元素。我想在这里使用所有存储的定位器。

@FindBy中使用属性文件值时,我收到编译错误the value for annotation must be a constant expression

有人可以帮我理解吗?如果可能的话,请建议我一些解决方法。

1 个答案:

答案 0 :(得分:1)

必须在编译时中评估@FindBy注释的值,即在程序开始运行之前已知该值。属性文件中的值在运行时中进行评估,因此无法在page factory中使用它们。

您拥有的选项

  • 将定位器作为固定字符串放在@FindBy代码中,而不是从属性文件中读取。
  • 在创建页面对象实例时,不要使用page factory并初始化元素。
  • 请勿使用page factory并仅在使用时初始化元素。