AppiumBy.ANDROID_UIAUTOMATOR, 'new UiSelector().text("")'. 用法
时间: 2024-04-30 18:18:48 浏览: 15
这是 Appium 使用 Android UI Automator 查找元素的语法,其中 `new UiSelector().text("")` 是用来查找具有指定文本的元素的。你需要在引号内输入要查找的文本。例如,如果要查找文本为“登录”的元素,可以这样写:
```
driver.find_element(by=AppiumBy.ANDROID_UIAUTOMATOR, value='new UiSelector().text("登录")')
```
注意,此语法仅适用于 Android 平台,如果你在 iOS 平台上使用 Appium,则需要使用另一种语法来查找元素。
相关问题
driver.find_element(AppiumBy.ACCESSIBILITY_ID, '1').click() driver.find_element(AppiumBy.ACCESSIBILITY_ID, '0').click() driver.find_element(AppiumBy.ACCESSIBILITY_ID, '0').click() driver.find_element(AppiumBy.ACCESSIBILITY_ID, '9').click() driver.find_element(AppiumBy.ACCESSIBILITY_ID, '6').click() driver.find_element(AppiumBy.ACCESSIBILITY_ID, '9').click() 把上述代码用python写成一个方法并调用
可以封装一个方法来实现点击输入6位数字密码的操作,代码如下:
```python
from appium.webdriver.common.touch_action import TouchAction
from appium.webdriver.common.mobileby import MobileBy as AppiumBy
# 封装方法
def input_password(driver, password):
for digit in password:
driver.find_element(AppiumBy.ACCESSIBILITY_ID, digit).click()
# 调用方法,输入密码"100969"
password = "100969"
input_password(driver, password)
```
其中,`input_password`方法接受两个参数,第一个参数是Appium驱动对象`driver`,第二个参数是要输入的6位数字密码。该方法使用循环遍历密码中的每个数字,然后通过`driver.find_element`方法找到对应的数字元素,并调用`click`方法模拟点击操作。
最后,调用该方法并传入要输入的密码即可完成操作。
# -*- coding: UTF-8 -*- from lib2to3.pgen2 import driver from appium import webdriver from appium.webdriver.common.appiumby import AppiumBy el1 = driver.find_element(by=AppiumBy.ACCESSIBILITY_ID, value="通讯录") el1.click() el2 = driver.find_element(by=AppiumBy.XPATH, value="/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.ViewGroup/android.widget.FrameLayout[1]/android.widget.FrameLayout/android.widget.ListView/android.widget.FrameLayout[3]/android.widget.RelativeLayout") el2.click() el3 = driver.find_element(by=AppiumBy.XPATH, value="/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.ViewGroup/android.widget.FrameLayout[2]/android.view.ViewGroup/android.view.ViewGroup/androidx.recyclerview.widget.RecyclerView/android.view.ViewGroup[1]/android.widget.TextView") el3.click() el4 = driver.find_element(by=AppiumBy.XPATH, value="/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.ViewGroup/android.widget.FrameLayout[2]/android.view.ViewGroup/android.view.ViewGroup/androidx.recyclerview.widget.RecyclerView/android.view.ViewGroup[8]") el4.click() el5 = driver.find_element(by=AppiumBy.XPATH, value="/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.ViewGroup/android.widget.FrameLayout[2]/android.view.ViewGroup/android.view.ViewGroup/androidx.recyclerview.widget.RecyclerView/android.view.ViewGroup[11]") el5.click()
根据你提供的代码,看起来你使用了 `lib2to3.pgen2.driver` 模块中的 `find_element` 方法。但是,`lib2to3.pgen2.driver` 模块实际上并没有这个方法,所以出现了 `AttributeError`。
我猜测你可能是想使用 Appium 的 `driver.find_element` 方法。如果是这样的话,你需要更改你的代码来正确导入 `appium.webdriver` 模块并使用它的 `driver` 属性。具体的修改如下:
```python
# -*- coding: UTF-8 -*-
from appium import webdriver
from appium.webdriver.common.appiumby import AppiumBy
# 创建 Appium driver
desired_caps = {}
desired_caps['platformName'] = 'Android'
# 添加其他的 desired capabilities 选项...
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
# 执行测试操作
el1 = driver.find_element(by=AppiumBy.ACCESSIBILITY_ID, value="通讯录")
el1.click()
el2 = driver.find_element(by=AppiumBy.XPATH, value="/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.ViewGroup/android.widget.FrameLayout[1]/android.widget.FrameLayout/android.widget.ListView/android.widget.FrameLayout[3]/android.widget.RelativeLayout")
el2.click()
el3 = driver.find_element(by=AppiumBy.XPATH, value="/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.ViewGroup/android.widget.FrameLayout[2]/android.view.ViewGroup/android.view.ViewGroup/androidx.recyclerview.widget.RecyclerView/android.view.ViewGroup[1]/android.widget.TextView")
el3.click()
el4 = driver.find_element(by=AppiumBy.XPATH, value="/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.ViewGroup/android.widget.FrameLayout[2]/android.view.ViewGroup/android.view.ViewGroup/androidx.recyclerview.widget.RecyclerView/android.view.ViewGroup[8]")
el4.click()
el5 = driver.find_element(by=AppiumBy.XPATH, value="/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.ViewGroup/android.widget.FrameLayout[2]/android.view.ViewGroup/android.view.ViewGroup/androidx.recyclerview.widget.RecyclerView/android.view.ViewGroup[11]")
el5.click()
# 关闭 driver
driver.quit()
```
注意,这里我使用了 `appium.webdriver` 模块的 `webdriver.Remote` 方法来创建 driver,然后使用 `driver.find_element` 方法来查找元素。最后,在测试结束后,我也关闭了 driver。你需要根据你的具体情况修改代码中的 `desired_caps` 和元素定位方式等内容。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![apk](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)