我正在 python 的 Andriod 项目的 Appium 中编写测试代码。问题是我无法访问具有相同 Id 的两个不同 Activity 中的两个按钮。我试图以这种方式访问第二个按钮。但它们都不起作用。如何解决问题?
driver.find_element_by_id("com.myapp.testApp:id/login[1]").click(), driver.find_element_by_class_name("android.widget.Button").click()
driver.find_element_by_xpath("(//button[@id='login'])[1]").click()
driver.find_element_by_xpath("//android.widget.Button[@text='Change Password']").click()
5 回答
使用.find_elements*
:
elements = driver.find_elements_by_xpath("xpath")
#check elements number
print(len(elements))
#click second element
elements[1].click()
您可以使用该get
方法findElements
:
driver.findElements(By.xpath("yourXpath]")).get(0).click();
如果按钮文本不同,请尝试通过accessibility_id
driver.find_element_by_accessibility_id("Login").click()
driver.find_element_by_accessibility_id("Change Password").click()
或者
如果你熟悉 uiautomator,
driver.find_element_by_android_uiautomator('new UiSelector().resourceId("com.myapp.testApp:id/login[1]")')
driver.find_element_by_android_uiautomator('new UiSelector().resourceId("com.myapp.testApp:id/login[2]")')
您可以尝试使用 textview:
driver.find_element_by_xpath("//android.widget.TextView[@text='Change Password']").click()
你可以链接这个,它会给你正确的输出:输入是:
d1 = driver.find_elements_by_id("com.application.zomato:id/price")
itemtotalprice = d1[0].get_attribute("text")
这是我的输出:
普通话橡树 ₹200 ₹166.75