如果元素具有多个 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。
这种方法的优点是您实际上可以组合不同类型的定位器。
我需要的是使用两个可能的 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。
这种方法的优点是您实际上可以组合不同类型的定位器。