iOS远程真机之WebDriverAgent 天坑记

来源:互联网 发布:太阳队布克数据 编辑:程序博客网 时间:2024/06/05 20:59

一、WDA安装依赖报错:

这里写图片描述

       这个东西神坑,我搞了一天都没找到解决方案,最后在appium讨论中发现,

       解决方案是:

       先定位到WebDriverAgent 所在路径

$ cd /Users/XXXX/git/WebDriverAgent 

       然后运行:

mkdir -p Resources/WebDriverAgent.bundlesh ./Scripts/bootstrap.sh

       成功安装

这里写图片描述

       而不是WebDriverAgent GitHub上说的./Scripts/bootstrap.sh

二、WDA运行失败

       通过xcode启动WDA,在控制台可以看到

       这里写图片描述

       通过终端命令启动

PASSWORD="replace-with-your-password"security unlock-keychain -p $PASSWORD ~/Library/Keychains/login.keychainUDID=$(idevice_id -l | head -n1)xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination "id=$UDID" test

这里写图片描述

       错误原因:没有运行bootstrap

       也有说是:WebDriver becomes unresponsive after certain number of requests

       即:在一定数量的请求之后,WebDriver会变得无响应

       解决方案

这里写图片描述

       图片可能有点看不清

       WebDriverAgentLib->Build Setting->Runpath Search Paths->添加变量:

$(SRCROOT)/../Carthage/Build/iOS$(PROJECT)/Carthage/Build/iOS

这里写图片描述

       WebDriverAgentLib->Build Setting->Build Active Architecture Only->No

       你们以为这样就能运行吗?

       并不是!

       最关键一步来了:

你要用数据线连着电脑重启你的手机!!!!
你要用数据线连着电脑重启你的手机!!!!
你要用数据线连着电脑重启你的手机!!!!

       重要的话要说三遍!

       这个方法我确实不知道原来,我去WDA里面提issue,开发者给我说是Xcode的问题,现在还没解决。。。

       但是用数据线连着电脑重启你的手机后,我确实运行成功了

这里写图片描述

       而且最神奇的事情是:我由于有点事情,断掉了数据线连接,等我再次用iPhone连接Mac的时候,又报错了,和前面一样。。。这个原理我真是很绝望。。。这里我也只能提供解决思路了,这个问题我真的没弄懂,希望有大神解决后告诉我下!

2017-8-16再次更新

       这几天我WDA还是不重启就运行不起,再次尝试将facebook的WDA项目git下来,然后发现:

$ mkdir -p Resources/WebDriverAgent.bundle$ sh ./Scripts/bootstrap.sh

       已经无法解决问题了,还是会报错,且同
这里写图片描述
       然后又是漫长的寻找解决方案,然后发现这个方法可以使用:

       把 WebDriverAgent/Inspector/webpack.config.js 中的

loaders: [      { test: /\.js?$/, loaders: ['babel-loader'], exclude: /node_modules/ },      { test: /\.css?$/, loader: 'style-loader!css-loader' },    ]

       改为

loaders: [      { test: /\.js?$/, loaders: ['babel-loader'] },      { test: /\.css?$/, loader: 'style-loader!css-loader' },    ]

       把 , exclude: /node_modules/ 这部分去掉即可!

阅读全文
1 0