折腾:
【未解决】Mac中用facebook-wda自动操作安卓手机浏览器实现百度搜索
期间,去初始化安装facebook-wda的环境
参考官网
和自己教程:
先去安装依赖的库:
【已解决】Mac中安装facebook-wda依赖的一些库
继续:
给iPhone中安装WebDriverAgentRunner-Runner
去下载WebDriverAgent.git的代码,XCode打开编译,给iPhone安装
crifan@licrifandeMacBook-Pro ~/dev/dev_root/python/baiduSearchAutomation/code/facebook-wda git clone https://github.com/appium/WebDriverAgent.git 正克隆到 'WebDriverAgent'... remote: Enumerating objects: 104, done. remote: Counting objects: 100% (104/104), done. remote: Compressing objects: 100% (76/76), done. remote: Total 23210 (delta 46), reused 55 (delta 28), pack-reused 23106 接收对象中: 100% (23210/23210), 17.40 MiB | 3.88 MiB/s, 完成. 处理 delta 中: 100% (10422/10422), 完成.
下载了代码
cd WebDriverAgent
然后
试试直接命令行是否可以
xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination "id=`idevice_id -l | head -n1`" test
此处Mac没连iPhone,会报错:
xcodebuild: error: missing value for key 'id' of option 'Destination'
去连上iPhone手机
手机中第一次会弹框,问是否信任:

点击信任
不过先确定:
✘ crifan@licrifandeMacBook-Pro /Users/Shared idevice_id -l crifan@licrifandeMacBook-Pro /Users/Shared idevice_id -l 3dc13714e21415898e8e2c2863d96990a4d69c97
确定可以找到iPhone设备了。

然后继续试试
xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination "id=`idevice_id -l | head -n1`" test
先去看看:
xcodebuild -version Xcode 12.4 Build version 12D4e
结果报错:
✘ crifan@licrifandeMacBook-Pro ~/dev/dev_root/python/baiduSearchAutomation/code/facebook-wda/WebDriverAgent master xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination "id=`idevice_id -l | head -n1`" test Command line invocation: /Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination id=3dc13714e21415898e8e2c2863d96990a4d69c97 test 2021-04-10 20:46:59.697 xcodebuild[25043:190394] DVTAssertions: Warning in /Library/Caches/com.apple.xbs/Sources/DVTiOSFrameworks/DVTiOSFrameworks-17705/DTDeviceKitBase/DTDKRemoteDeviceData.m:371 Details: (null) deviceType from 3dc13714e21415898e8e2c2863d96990a4d69c97 was NULL when -platform called. Object: <DTDKMobileDeviceToken: 0x7f8d23817510> Method: -platform Thread: <NSThread: 0x7f8d20435b10>{number = 2, name = (null)} Please file a bug at https://feedbackassistant.apple.com with this warning message and any useful information you can provide. 2021-04-10 20:46:59.907 xcodebuild[25043:190506] DVTAssertions: Warning in /Library/Caches/com.apple.xbs/Sources/DVTiOSFrameworks/DVTiOSFrameworks-17705/DTDeviceKitBase/DTDKRemoteDeviceData.m:371 Details: (null) deviceType from 3dc13714e21415898e8e2c2863d96990a4d69c97 was NULL when -platform called. Object: <DTDKMobileDeviceToken: 0x7f8d23817510> Method: -platform Thread: <NSThread: 0x7f8d220fb8e0>{number = 8, name = (null)} Please file a bug at https://feedbackassistant.apple.com with this warning message and any useful information you can provide. 2021-04-10 20:47:00.151 xcodebuild[25043:190506] DVTAssertions: Warning in /Library/Caches/com.apple.xbs/Sources/DVTiOSFrameworks/DVTiOSFrameworks-17705/DTDeviceKitBase/DTDKRemoteDeviceData.m:371 Details: (null) deviceType from 3dc13714e21415898e8e2c2863d96990a4d69c97 was NULL when -platform called. Object: <DTDKMobileDeviceToken: 0x7f8d23817510> Method: -platform Thread: <NSThread: 0x7f8d220fb8e0>{number = 8, name = (null)} Please file a bug at https://feedbackassistant.apple.com with this warning message and any useful information you can provide. note: Using new build system note: Building targets in parallel note: Planning build note: Constructing build description error: Signing for "WebDriverAgentRunner" requires a development team. Select a development team in the Signing & Capabilities editor. (in target 'WebDriverAgentRunner' from project 'WebDriverAgent') Test session results, code coverage, and logs: /Users/crifan/Library/Developer/Xcode/DerivedData/WebDriverAgent-fkggltbnspxitwcqkcogpefhhvai/Logs/Test/Test-WebDriverAgentRunner-2021.04.10_20-47-03-+0800.xcresult Testing failed: Signing for "WebDriverAgentRunner" requires a development team. Select a development team in the Signing & Capabilities editor. Testing cancelled because the build failed. ** TEST FAILED **
看来,只能去:
找XCode中,尝试去编译试试了
不过更郁闷的是:
此处没有苹果的开发者账号,导致无法继续正常编译了。
不过据说苹果后来政策变了,没账号,也能编译,只是限制无法发布而已?
那去试试:
【已解决】Mac中XCode如何编译WebDriverAgent.xcodeproj
再去根据
访问
看看是否输出结果

没结果。
去加上端口转发试试
crifan@licrifandeMacBook-Pro ~ iproxy 8100 8100 Creating listening port 8100 for device port 8100 waiting for connection
去访问:

立刻就可以了。
然后不用XCode去Test,因为每次都要启动XCode太麻烦。
换用命令行的xcodebuild:
xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination "id=`idevice_id -l | head -n1`" test
即可正常编译,启动test Manager的服务了:
crifan@licrifandeMacBook-Pro ~ cd /Users/crifan/dev/dev_root/python/baiduSearchAutomation/code/facebook-wda/WebDriverAgent crifan@licrifandeMacBook-Pro ~/dev/dev_root/python/baiduSearchAutomation/code/facebook-wda/WebDriverAgent master ● xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination "id=`idevice_id -l | head -n1`" test Command line invocation: /Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination id=3dc13714e21415898e8e2c2863d96990a4d69c97 test 。。。 2021-04-11 15:12:23.250002+0800 WebDriverAgentRunner-Runner[625:171855] [User Defaults] Couldn't write value for key DidShowGestureKeyboardIntroduction in CFPrefsPlistSource<0x281a6a180> (Domain: com.apple.Preferences, User: kCFPreferencesCurrentUser, ByHost: No, Container: (null), Contents Need Refresh: No): setting preferences outside an application's container requires user-preference-write or file-write-data sandbox access Test Case '-[UITestingUITests testRunner]' started. t = 0.00s Start Test at 2021-04-11 15:12:23.252 t = 0.00s Set Up 2021-04-11 15:12:23.285741+0800 WebDriverAgentRunner-Runner[625:171855] Built at Apr 10 2021 22:08:53 2021-04-11 15:12:23.318140+0800 WebDriverAgentRunner-Runner[625:171855] ServerURLHere->http://192.168.31.58:8100<-ServerURLHere 2021-04-11 15:12:23.320323+0800 WebDriverAgentRunner-Runner[625:172001] Using singleton test manager

至此,环境搭建好了。
去写demo代码,测试代码能正常运行
不过还没安装库呢:
pip3 install -U facebook-wda
此处之前已安装过:
crifan@licrifandeMacBook-Pro ~/dev/dev_root/python/baiduSearchAutomation/code/facebook-wda/WebDriverAgent master ● pip3 install -U facebook-wda Looking in indexes: http://mirrors.aliyun.com/pypi/simple/ Requirement already satisfied: facebook-wda in /Users/crifan/.pyenv/versions/3.6.6/lib/python3.6/site-packages (1.3.4) Requirement already satisfied: requests>=2.9.1 in /Users/crifan/.pyenv/versions/3.6.6/lib/python3.6/site-packages (from facebook-wda) (2.22.0) Requirement already satisfied: Pillow in /Users/crifan/.pyenv/versions/3.6.6/lib/python3.6/site-packages (from facebook-wda) (8.2.0) Requirement already satisfied: six in /Users/crifan/.pyenv/versions/3.6.6/lib/python3.6/site-packages (from facebook-wda) (1.15.0) Requirement already satisfied: cached-property~=1.5.1 in /Users/crifan/.pyenv/versions/3.6.6/lib/python3.6/site-packages (from facebook-wda) (1.5.2) Requirement already satisfied: retry in /Users/crifan/.pyenv/versions/3.6.6/lib/python3.6/site-packages (from facebook-wda) (0.9.2) Requirement already satisfied: attrdict~=2.0.1 in /Users/crifan/.pyenv/versions/3.6.6/lib/python3.6/site-packages (from facebook-wda) (2.0.1) Requirement already satisfied: Deprecated~=1.2.6 in /Users/crifan/.pyenv/versions/3.6.6/lib/python3.6/site-packages (from facebook-wda) (1.2.12) Requirement already satisfied: wrapt<2,>=1.10 in /Users/crifan/.pyenv/versions/3.6.6/lib/python3.6/site-packages (from Deprecated~=1.2.6->facebook-wda) (1.12.1) Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /Users/crifan/.pyenv/versions/3.6.6/lib/python3.6/site-packages (from requests>=2.9.1->facebook-wda) (1.25.8) Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /Users/crifan/.pyenv/versions/3.6.6/lib/python3.6/site-packages (from requests>=2.9.1->facebook-wda) (3.0.4) Requirement already satisfied: idna<2.9,>=2.5 in /Users/crifan/.pyenv/versions/3.6.6/lib/python3.6/site-packages (from requests>=2.9.1->facebook-wda) (2.8) Requirement already satisfied: certifi>=2017.4.17 in /Users/crifan/.pyenv/versions/3.6.6/lib/python3.6/site-packages (from requests>=2.9.1->facebook-wda) (2019.11.28) Requirement already satisfied: py<2.0.0,>=1.4.26 in /Users/crifan/.pyenv/versions/3.6.6/lib/python3.6/site-packages (from retry->facebook-wda) (1.10.0) Requirement already satisfied: decorator>=3.4.2 in /Users/crifan/.pyenv/versions/3.6.6/lib/python3.6/site-packages (from retry->facebook-wda) (4.4.2)
去写代码
import wda # for debug # Enable debug will see http Request and Response # wda.DEBUG = True c = wda.Client('http://localhost:8100') curStatus = c.status() print("curStatus=%s" % curStatus)
是可以导入的:


可以正常输出状态:
curStatus=AttrDict({'message': 'WebDriverAgent is ready to accept commands', 'state': 'success', 'os': {'testmanagerdVersion': 26, 'name': 'iOS', 'sdkVersion': '14.2', 'version': '12.3.1'}, 'ios': {'ip': '192.168.31.58'}, 'ready': True, 'build': {'time': 'Apr 10 2021 22:08:54', 'productBundleIdentifier': 'com.facebook.WebDriverAgentRunner'}, 'sessionId': None})
至此,Mac中搭建facebook-wda搭建完毕。
【总结】
参考官网
和自己教程:
即可正常搭建环境:
大体流程
连上iPhone
用:
idevice_id -l
确保可以找到设备。
下载代码:
git clone https://github.com/appium/WebDriverAgent.git
用XCode去编译通过,其中主要是设置和自动签名。
后续用XCode的Product-》Test或 命令行:
xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination "id=`idevice_id -l | head -n1`" test
启动test manager服务,即可用代码:
import wda # for debug # Enable debug will see http Request and Response # wda.DEBUG = True c = wda.Client('http://localhost:8100') curStatus = c.status() print("curStatus=%s" % curStatus)
测试确保环境正常。
具体步骤详见:
另外:
【未解决】Mac中XCode编译报错:The operation couldn’t be completed. Unable to log in with account account rejected
转载请注明:在路上 » 【已解决】Mac中安装和初始化facebook-wda环境