如果元素具有多个 id 值,如何使用 @FindBy 查找元素

How to find elements with @FindBy if they have multiple id values

我需要的是使用两个可能的 ID 声明页面元素(移动元素,使用@FindBy 或@AndroidFindBy),这两个 ID 将根据正在测试的应用程序版本而变化 - 我们将有一个 ID 用于暂存版本和生产版本,它们会略有不同(一个在 id 值中间有“调试”,另一个不会)

这是否可能(通过使用 OR 或任何其他方式)以及如何实现?

谢谢。

您可以尝试将以下 Xpath 传递给@FindBy:

//*[@id='example-001' | @id='example-debug-001']

您可以使用注释 @FindAll。这是示例:

@FindAll({
        @FindBy(id = "one_id"),
        @FindBy(id = "another_id")
})
WebElement myElement;

参见docs

这种方法的优点是您实际上可以组合不同类型的定位器。