Win 下跑 iOS 自动化-AppiumV1.20.2+tideviceV0.3.3 报错
tidevice 安装成功,可以获取设备信息和启动 wad. appium 运行脚本报错是说找不到 xcode 路径,所以这个方案可行不?
运行脚本中,需要配置 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 呢?
我加了参数 capabilities.setCapability("webDriverAgentUrl", WDAServer.SERVER_URL);
运行报错:
尝试解决思路:均失败!!
1 . webDriverAgentUrl URL 用本地 IP,127.0.0.1 ,用 localhost 或者用 localhost:8100/status
Error: The usbmuxd socket at '/var/run/usbmuxd' does not exist or is not accessible。请问一下之前遇到这个错误没,怎么解决的?
安装了,已升级到最新的,还是不行。
同问 本机 Win10 +Appium1.18.0+python3.8 同样也报这个错误 “Error: The usbmuxd socket at '/var/run/usbmuxd' does not exist or is not accessible”
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"
报错的 appium 服务日志,上下 10 行可以一起贴上来不?
要看看 appium 为啥要调这个,才能知道是不是可以通过别的配置或者改源码的哪里去绕过。
你用的 mac 还是 windows ?
报错信息是说没有找到 xcode ,而且看你配置有勾选了 usePrebuildWDA ,不知道是不是这个会导致 appium 自己去找 xcode 相关信息。
大佬,请问你有时间搞么?这两天看了一下,还是没有思路,tidevice+appium,感觉 appium 源码应该是要修改才行,不能直接搞.
最近比较忙。。。
要不你试试根据 appium server 打印的日志,看看 appium 究竟在做什么,然后根据日志找到对应组件源码看看?可以分享下你看的结果以及疑惑点,我帮你补漏一下。
大佬,我看了一下。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 的,比你的低,其他的都和你版本都是一样的。我下载一个最新的看下
这个链接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 地址,降低报错可能
还真的是 appium 版本的问题
WDA is not response, check again after 10s,今天启动 appium inspector 的时候,就一直报这个错误,请问遇到过么
有哪位大佬遇到过 这个 问题
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...
按照我这个配置看看,我这边是可以了的,一开始也报你这个错误。注意:我把 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)
'webDriverAgentUrl': '127.0.0.1:8100/status' 改成'webDriverAgentUrl': 'http://127.0.0.1:8100'