我正在使用Appium自动化Android应用程序,我们需要单击带有动态ID的按钮。该按钮具有ID“ PROFILEBUTTON”或ID“ PROFILEMAILBUTTON”。除了坐标外,还有什么可以用来自动单击此按钮的?
为了鉴定与元素 动态ID 要么 PROFILEBUTTON 或 PROFILEMAILBUTTON 可以使用与以下通配符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')]"));