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

标签 java selenium selenium-webdriver pom.xml

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

@FindBy 中使用属性文件值时,我收到编译错误,提示注释的值必须是常量表达式

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

最佳答案

@FindBy 注释的值必须在编译时进行计算,即在程序开始运行之前该值是已知的。属性文件中的值在运行时进行评估,因此它们不能在页面工厂中使用。

您拥有的选项是

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

关于java - 是否可以将定位器从属性文件传递到 POM 中的 @FindBy 注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42626105/

相关文章:

java - 在unix中运行java控制台程序

selenium - 如何在同一节点的不同浏览器版本中运行selenium代码?

javascript - 在列表框边缘浏览器中选择多个选项 ruby​​ selenium webdriver

google-chrome - 无法使用经过 http 基本身份验证的 Selenium WebDriver 中的默认/自定义配置文件启动 Google Chrome

java - org.openqa.selenium.WebDriverException : java.net.ConnectException:无法使用 GeckoDriver Firefox 和 Selenium 连接到 localhost/0:0:0:0:0:0:0

selenium-webdriver - 如何使用Selenium 2处理模式对话框

java - 在 Java Spring MVC 中的所有(或大部分) Controller 中进行相同的方法调用并设置属性

java - Android 下拉效果 - Spinner 与否?

java - 构建 cas (SSO) apereo 时出错

python - selenium - WebDriverWait().until(myFunc) 可以使用 WebDriver 之外的函数吗?