【问题标题】:How to specify multiple locators for Selenium web element using the FindBy and PageFactory mechanisms如何使用 FindBy 和 PageFactory 机制为 Selenium Web 元素指定多个定位器
【发布时间】:2013-10-10 12:23:35
【问题描述】:

我喜欢在我的自动化框架中使用带有 FindBy 注释的 PageFactory 来自动定位我的页面对象类中的元素。

我有一个 WebElement,我需要为其指定几个不同的定位器。我认为 FindBys 是我的解决方案,但显然它不是这样工作的。它相当于 driver.findElement(option1).findelement.(option2)。那不是我需要的。我需要一些可以通过一个或其他定位器找到元素的东西。如果一个不起作用,则使用另一个定位器。有没有办法在 Selenium 中使用 FindBy 注释来做到这一点?

【问题讨论】:

  • 你必须做一个自定义的解决方案。扩展您的测试用例并创建您自己的扩展 PageFactory 的自定义 PageFactory
  • 此外,几乎任何两个选择器都可以组合成一个选择器。您能解释一下您要查找的内容以及为什么需要两个选择器吗?
  • 愚蠢的理由。根据导航到它的方式,系统中有两个版本的主页。同时,我的测试间歇性失败,因为该元素在页面的两个版本中具有不同的 id。并且两个主页版本中都不存在单个静态项。
  • 所以没有 FindBy 类型的通知允许指定多个定位器?这将是一个很好的功能,因为并非所有针对不同浏览器的 Webdriver 实现都可以使用相同的定位器找到元素。
  • 您可以使用findby.css("[id=option1],[id=option2]")。逗号允许选择器匹配id

标签: java selenium selenium-webdriver


【解决方案1】:

【讨论】:

  • @FindAll 也可用于 A/B 测试,在自动化测试运行期间,我们有不同的定位器基础运行哪个版本。
猜你喜欢
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
  • 2017-08-19
  • 1970-01-01
  • 1970-01-01
  • 2019-08-24
  • 1970-01-01
相关资源
最近更新 更多