一尘不染

如何找到带有dynamicID的按钮

selenium

我正在使用Appium自动化Android应用程序,我们需要单击带有动态ID的按钮。该按钮具有ID“ PROFILEBUTTON”或ID“
PROFILEMAILBUTTON”。除了坐标外,还有什么可以用来自动单击此按钮的?


阅读 223

收藏
2020-06-26

共1个答案

一尘不染

为了鉴定与元素 动态ID 要么 PROFILEBUTTONPROFILEMAILBUTTON
可以使用与以下通配符cssSelector:

  • ^:表示属性值以

  • $:表示属性值以

因此,最精细的定位器将包括寻找初始字母(即 PROFILE) 和结尾字母(即 BUTTON)的策略, 并且应为:

driver.findElement(By.cssSelector("[id^='PROFILE'][id$='BUTTON']"));

更新资料

根据您的评论更新,您可以使用以下等效的 xpath之一

driver.findElement(By.xpath("//*[contains(@resource-id,'profileMail') and contains(@resource-id,'Button')]"));
//or
driver.findElement(By.xpath("//*[contains(@resource-id,'profileMailButton') or contains(@resource-id,'profileMailPremiumButton')]"));
2020-06-26