最新消息:20210917 已从crifan.com换到crifan.org

【已解决】Mac中安装和初始化facebook-wda环境

Mac crifan 556浏览 0评论
折腾:
【未解决】Mac中用facebook-wda自动操作安卓手机浏览器实现百度搜索
期间,去初始化安装facebook-wda的环境
参考官网
openatx/facebook-wda: Facebook WebDriverAgent Python Client Library (not official) (github.com)
和自己教程:
搭建环境 · iOS自动化测试利器:facebook-wda (crifan.com)
先去安装依赖的库:
【已解决】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
常见问题和心得 · iOS自动化测试利器:facebook-wda (crifan.com)
结果报错:
✘ 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
再去根据
常见问题和心得 · iOS自动化测试利器:facebook-wda (crifan.com)
访问
http://192.168.31.58:8100/status
看看是否输出结果
没结果。
去加上端口转发试试
crifan@licrifandeMacBook-Pro  ~  iproxy 8100 8100
Creating listening port 8100 for device port 8100
waiting for connection

去访问:
http://localhost:8100/status
立刻就可以了。
然后不用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搭建完毕。
【总结】
参考官网
openatx/facebook-wda: Facebook WebDriverAgent Python Client Library (not official) (github.com)
和自己教程:
搭建环境 · iOS自动化测试利器:facebook-wda (crifan.com)
即可正常搭建环境:
大体流程
连上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)
测试确保环境正常。
具体步骤详见:
搭建环境 · iOS自动化测试利器:facebook-wda (crifan.com)
另外:
【未解决】Mac中XCode编译报错:The operation couldn’t be completed. Unable to log in with account account rejected

转载请注明:在路上 » 【已解决】Mac中安装和初始化facebook-wda环境

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
99 queries in 0.192 seconds, using 23.33MB memory