WebdriverAgent补充
下载
git clone https://github.com/facebook/WebDriverAgent
安装依赖
Cd WebDriverAgent && ./Scripts/bootstrap.sh
配置运行
- Xcode, 设置webdriverAgentLib签名;
- 设置WebDriverAgentRunner签名,并修改bundleId, 不修改的话签名不会通过;
- 选择需要运行的内容 Product → Scheme → WebdriverAgentRunner
- USB连接设备(或启动模拟器),Xcode中选择设备
- 编译安装 Product → Test
- 确认手机中的WebdriverAgentRunner已经安装上(手机第一次安装的话需要到设备管理中对你的AppleID进行授信)
- 打开Xcode的日志输出,View → DebugArea → Activate Console
- 查看输出目录中的wda server链接: 0.0.0.0:8100
- 将链接复制出来粘贴到浏览器中,http://0.0.0.0:8100/status,如果有数据,说明wda启动是成功的;
- 可能会遇到的问题:
- 1、地址无法访问,则需要对8100端口进行映射
- 命令行执行 iproxy 8100 8100
- 在此访问 http://localhost:8100/status
IWDP
安装
brew install libimobiledevice (必须,已安装过可略过)
brew install ios-webkit-debug-proxy
设置真机
设置->safari->高级->web inspector(检查器)打开
开启代理
Ios_webkit_debug_proxy –c ${uuid}:${port} –d ()
查看
使用浏览器打开localhost:${port}即可查看
Api: http://localhost:9222/json
搭配chrome devtools进行调试
- 命令行执行:ios_webkit_debug_proxy -f chrome-devtools://devtools/bundled/inspector.html;
- 打开chrome浏览器,输入chrome://inspect;
- 在device标签页下,打开Discover network targets选项,即可看到iOS真机上的webview,可对其进行调试;
remotedebug-ios-webkit-adapter
安装
npm install remotedebug-ios-webkit-adapter –g
启动
remotedebug_ios_webkit_adapter --port=9988
使用chrome远程调试页面
电脑用chrome打开chrome://inspect,即可远程调试,可以使用chrome来抓取页面元素;
Appium Desired_caps
desired_caps = {
“platformName”: “iOS”,
“deviceName”: “iPhone”,
“bundleId”: ”xxxx“,
”automationName“: ”XCUITest“,
”usePrebuiltWDA“: True,
”startIWDP“: True, # 必须!
"udid": ”xxxxxxx"
}
手势操作
由于XCUITest框架不支持TouchAction以及一些W3C标准的手势操作,所以在iOS的自动化中,要进行手势操作的话,必须使用JS.excute的方式执行;
Example:
Scroll in python:
# Python driver.execute_script('mobile: scroll', {'direction': 'down'});
dragFromToForDuration in Java
Java JavascriptExecutor js = (JavascriptExecutor) driver;
Map<String, Object> params = new HashMap<>();
params.put("duration", 1.0);
params.put("fromX", 100);
params.put("fromY", 100);
params.put("toX", 200);
params.put("toY", 200);
params.put("element", ((RemoteWebElement) element).getId()); js.executeScript("mobile: dragFromToForDuration", params);
作业
基于UICATELOG App,把里面的webview代码走通,然后改造代码,让Webview打开百度,并搜索Testerhome,确认搜索成功后结束。