0

我正在 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()

4

5 回答 5

1

使用.find_elements*

elements = driver.find_elements_by_xpath("xpath")
#check elements number
print(len(elements))
#click second element
elements[1].click()
于 2019-10-18T09:43:01.573 回答
0

您可以使用该get方法findElements

driver.findElements(By.xpath("yourXpath]")).get(0).click();
于 2020-02-28T11:14:07.227 回答
0

如果按钮文本不同,请尝试通过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]")')

于 2020-02-25T13:22:12.430 回答
0

您可以尝试使用 textview:

driver.find_element_by_xpath("//android.widget.TextView[@text='Change Password']").click()
于 2019-10-17T15:27:39.497 回答
0

你可以链接这个,它会给你正确的输出:输入是:

d1 = driver.find_elements_by_id("com.application.zomato:id/price")

itemtotalprice = d1[0].get_attribute("text")

这是我的输出:

普通话橡树 ₹200 ₹166.75

于 2021-09-22T13:57:58.047 回答