我已将所有<strong>xpath和定位器存储在属性文件中。我尝试在 Page Object Repository
中使用它们并通过 @FindBy
注释查找元素。我想在这里使用所有存储的定位器。
在 @FindBy
中使用属性文件值时,我收到编译错误,提示注释的值必须是常量表达式
。
有人可以帮我理解吗?如果可能的话,请建议我一些解决方法。
最佳答案
@FindBy
注释的值必须在编译时进行计算,即在程序开始运行之前该值是已知的。属性文件中的值在运行时进行评估,因此它们不能在页面工厂
中使用。
您拥有的选项是
- 将定位器作为固定字符串放入
@FindBy
代码中,而不是从属性文件中读取。 - 不要使用
页面工厂
并在创建页面对象实例时初始化元素。 - 不要使用
页面工厂
,并且仅在使用元素时才初始化它们。
关于java - 是否可以将定位器从属性文件传递到 POM 中的 @FindBy 注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42626105/