Appium Win 下跑 iOS 自动化-AppiumV1.20.2+tideviceV0.3.3 报错

阿三 · March 19, 2021 · Last by baicaisir replied at July 07, 2021 · 5523 hits

Win 下跑 iOS 自动化-AppiumV1.20.2+tideviceV0.3.3 报错

tidevice 安装成功,可以获取设备信息和启动 wad. appium 运行脚本报错是说找不到 xcode 路径,所以这个方案可行不?

已成功跑通:https://testerhome.com/topics/29230

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 38 条回复 时间 点赞

运行脚本中,需要配置 webDriverAgentUrl 给 appium driver ,才会不触发 appium 内置的用 xcode 启动 wda 这个流程。否则只要触发这个,appium 就会找 xcode 。windows 没有 xcode ,自然跑不下去。

详细文档可以参考:http://appium.io/docs/cn/advanced-concepts/wda-custom-server/(文档里一大段怎么用 java 控制 wda 代码示例不用管,就看最前面的说明和最末尾的示例就行)

最关键的代码:capabilities.setCapability("webDriverAgentUrl", WDAServer.SERVER_URL);

陈恒捷 回复

大佬,用 win + tidevice 启动后,wda 能够拉起,但是用 appium desk 启动会失败,怎么启动 appium server 呢?

阿三 #4 · March 22, 2021 Author
陈恒捷 回复

我加了参数 capabilities.setCapability("webDriverAgentUrl", WDAServer.SERVER_URL);


运行报错:

尝试解决思路:均失败!!
1 . webDriverAgentUrl URL 用本地 IP,127.0.0.1 ,用 localhost 或者用 localhost:8100/status

  1. appium 自带的 appium-webdriveragen 源码替换成我苹果手机上已安装的 wad,保持一致
阿三 回复

Error: The usbmuxd socket at '/var/run/usbmuxd' does not exist or is not accessible。请问一下之前遇到这个错误没,怎么解决的?

阿三 #6 · March 22, 2021 Author
YY 回复

没遇到,我猜测是你 win 系统没有安装 itunes

安装了,已升级到最新的,还是不行。

YY 回复

同问 本机 Win10 +Appium1.18.0+python3.8 同样也报这个错误 “Error: The usbmuxd socket at '/var/run/usbmuxd' does not exist or is not accessible”

阿三 回复

把你设置的完整的 capabilities 发出来一下?

YY 回复

windows 上用 appium 经验比较少,这个还真不知道。

看起来是在检测 usbmuxd 组件的时候报错了,我猜是 appium 调用 iOS 自动化时需要用到的一些功能(比如获取设备上已安装应用列表)时调用了这个组件,结果发现这个组件在报错所对应的路径不存在,所以报错。这个组件是 xcode 、itunes 等和 iOS 设备通讯的底层通讯协议暴露的 socket 入口(可以理解为类似日常网络连接里的 tcp 连接层),这个路径看起来是 linux 的路径,不确定 windows 上是不是这个路径。

建议也看下堆栈,对应看看 appium 源码此时在做什么操作?

另外,也建议把你启动 appium desktop 里面的步骤和各个配置也发下吧,信息太少没法判断。就像用户和你说我登录不上这个应用了,根据这个线索你是无从定位和给反馈的(手机问题?运营商问题?应用问题?服务端问题?都有可能),只能继续问用户各个更具体的信息。

陈恒捷 回复

感谢大佬。
1.使用 idevice 拉起手机上的 wda,wda 显示返回成功
2.在 appium 路径下,手动拉起 main. js
3.输入 capability,在 mac 的基础上,增加了你上面说的 webDriverAgent,然后运行就报上述错误。
self. desired_caps["webDriverAgentUrl"] = "http://localhost:8100"

YY 回复

报错的 appium 服务日志,上下 10 行可以一起贴上来不?

要看看 appium 为啥要调这个,才能知道是不是可以通过别的配置或者改源码的哪里去绕过。

陈恒捷 回复

感谢大佬,公司内网不方便贴代码/日志,我自己再研究一下,感谢。

阿三 #14 · March 23, 2021 Author
陈恒捷 回复

陈恒捷 回复

请问这种情况怎么解决?

Morii 回复

你用的 mac 还是 windows ?

报错信息是说没有找到 xcode ,而且看你配置有勾选了 usePrebuildWDA ,不知道是不是这个会导致 appium 自己去找 xcode 相关信息。

陈恒捷 回复

windows usePrebuildWDA 关了也报错

wda 和端口都启动成功了的

Morii 回复

我晚些抽空搞台 windows 试试吧,现在手上没有 windows 。。。

陈恒捷 回复

大佬,请问你有时间搞么?这两天看了一下,还是没有思路,tidevice+appium,感觉 appium 源码应该是要修改才行,不能直接搞.

陈恒捷 回复

大佬康康我的问题吧,求求你了。

YY 回复

最近比较忙。。。

要不你试试根据 appium server 打印的日志,看看 appium 究竟在做什么,然后根据日志找到对应组件源码看看?可以分享下你看的结果以及疑惑点,我帮你补漏一下。

陈恒捷 回复

好的,谢谢大佬。我现在已经在用 facebook-wda 在写了。

阿三 #23 · March 26, 2021 Author
YY 回复

在 win 我已经跑成功,参考一下https://testerhome.com/topics/29230

阿三 回复

感谢大佬,我试一下。

阿三 回复

大佬,我看了一下。http://127.0.0.1:8100/status 我本地可以看到结果。
'usePrebuiltWDA'、'useXctestrunFile'、'skipLogCapture',这三个我之前没有设置,设置后还是报错,“Error: The usbmuxd socket at '/var/run/usbmuxd' does not exist or is not accessible,还是这错误。

请问一下,你上次报错和本地的修改点再哪里,我看你第一次和第二次的区别,也是这几个参数没有设置,但是这几个参数设置的值基本和默认值是一样的呢?还有你本地能访问http://127.0.0.1:8100/inspector么?

我看了一下,我这边只有 appium 的版本是 1.19 的,比你的低,其他的都和你版本都是一样的。我下载一个最新的看下

阿三 #27 · March 26, 2021 Author

这个链接http://127.0.0.1:8100/status 有返回值只能说明 wda 启动成功端口 8100 映射也是正常
appium 启动参数按照这个

1.appium 报找不到 xcode 时,我是加参数 webDriverAgentUrl 解决,然后 appium,又报 path 问题,
2.appium,又报 path 问题,我是加 3 个参数,'usePrebuiltWDA'、'useXctestrunFile'、'skipLogCapture' 解决了,
然后我启动 iOS 脚本测试就通过了,建议,所有参数有填写 IP 的,统一或者用具体本地 ip 地址,降低报错可能

  1. http://127.0.0.1:8100/inspector,我可以访问 4.你报错/var/run/usbmuxd 个人猜测,设备/数据线/重启设备,所有配置环境跟我一样情况下,逐一排查

还真的是 appium 版本的问题😂

刘博琛 回复

把 appium 版本升级到最新的版本

阿三 #30 · March 26, 2021 Author
YY 回复

所有我特意把各个版本写清楚,防止版本不一样,各种报错😂

阿三 回复


现在又报找不到预期能力 bundleId 错误

阿三 回复

WDA is not response, check again after 10s,今天启动 appium inspector 的时候,就一直报这个错误,请问遇到过么

阿三 #33 · March 29, 2021 Author
YY 回复

可能原因:
这个值设置大些,再不行就 wad 卸载重装

阿三 回复

嗯嗯,我是卸载了重新装的。感觉还是有点不太稳定

有哪位大佬遇到过 这个 问题
Failed to create WDA session (An unknown server-side error occurred while processing the command. Original error: Could not proxy command to the remote server. Original error: connect ETIMEDOUT 192.168.0.107:8100). Retrying...

Morii 回复

按照我这个配置看看,我这边是可以了的,一开始也报你这个错误。注意:我把 wda 端口号改为了 8200,
原文参考:https://sutune.me/2021/04/20/tidevice/
{
"udid": "6dd5e55bf4204cd5ad8042dc4ecb2xxxxxx",
"automationName": "XCUITest",
"deviceName": "iphone8",
"platformName": "iOS",
"platforVersion": "12.1.2",
"bundleId": "com.hxxxxx",
"webDriverAgentUrl": "http://localhost:8200",
"usePrebuiltWDA": "true",
"useXctestrunFile": "false",
"skipLogCapture": "true",
"automationName": "XCUITest"
}

提问:webdriver 启用 appium 报错如何解决?
报错内容:
selenium.common.exceptions.WebDriverException: Message: An unknown server-side error occurred while processing the command. Original error: Could not find path to Xcode by symlinks located in /var/db/xcode_select_link, or /usr/share/xcode-select/xcode_dir_link

配置如下:
desired_caps = {'platformName': 'iOS', 'platforVersion': '12.3', 'deviceName': 'test', 'app': 'com.xxxxx' , 'udid': '00008020-XXXXXXXXXX', 'webDriverAgentUrl': '127.0.0.1:8100/status', 'noReset': True, 'usePrebuiltWDA': 'false', 'useXctestrunFile': 'false', 'skipLogCapture': 'true', 'useNewWDA': 'false'}

运行命令如下:
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)

Leac 回复

'webDriverAgentUrl': '127.0.0.1:8100/status' 改成'webDriverAgentUrl': 'http://127.0.0.1:8100'

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up