appium /usr/local/opt/icu4c/lib/libicui18n.70.dylib报错
时间: 2023-10-11 12:08:13 浏览: 51
这个报错是因为 appium 要求使用 icu4c 库的版本与系统中安装的不一致导致的。可以通过以下两种方法解决:
1. 升级 icu4c 库的版本到 70 版本及以上
2. 修改 appium 的环境变量,将 DYLD_LIBRARY_PATH 指向 appium 自带的 icu4c 库
相关问题:
1. 如何升级 icu4c 库的版本?
2. 如何修改环境变量?
相关问题
An unknown server-side error occurred while processing the command. Original error: Cannot start the 'com.xiaoming.intelligentseat' application. Visit https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/android/activity-startup.md for troubleshooting. Original error: Error executing adbExec. Original error: 'Command 'D:\\adb\\sdk\\android-sdk-windows\\platform-tools\\adb.exe -P 5037 -s GIJR00300041 shell am start -W -n com.xiaoming.intelligentseat/.ui.activity.MainActivity -S' exited with code 255'; Stderr: ''; Code: '255'
这个错误提示是由于无法启动 'com.xiaoming.intelligentseat' 应用程序所导致的。您可以访问 https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/android/activity-startup.md 进行故障排除。根据错误信息显示,可能是由于 adbExec 命令执行失败引起的。您可以尝试以下解决方法:
1. 确保您的设备已连接并且具有开发者选项已启用。
2. 检查您的 adb 路径是否正确,并且 adb 版本与您的设备兼容。
3. 尝试重新安装 adb 并更新到最新版本。
4. 检查应用程序的包名和活动名是否正确,并确保它们与您的设备上的实际应用程序匹配。
5. 确保您具有足够的权限来启动该应用程序。
如果问题仍然存在,您可以尝试在 Appium 论坛或社区中提问,以获取更多帮助和指导。
# -*- 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` 和元素定位方式等内容。