6-3-2绕过appium的iOS测试
1.WDA自带的inspector
- 1.1.启动WDA
+ Xcode启动:product-test,适合个人调试
+ 命令行启动:适合持续集成
UDID=$(idevice_id -l)
xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination "id=$UDID" test-without-building
- 1.2.iproxy 8100 8100
不启动iproxy,inspector不能访问 - 1.3.查看WDA自带的inspector
浏览器输入127.0.0.1:8100/status,查看连接状态,inspector查找元素。
xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination "id=${UDID}" test-without-building

注意:WDA自带的inspect没有xpath

2使用wdaproxy获取页面
- 2.1停止iproxy,使用wdaproxy
- 2.2安装:brew install openatx/tap/wdaproxy
- 2.3启动:wdaproxy -p 8100
- 浏览器输入127.0.0.1:8100/,会发现有4个选项,inspector\status\packages\remote。package可以查看安装的应用和包名,remote可以直接操作手机,sessionid,udid


## 3.启动appium的inspector
### 1. 使用bundleId启动
### 2.使用bundleId+sessionId启动


## 4.代码
### 4.1测试脚本1
```#python
from appium import webdriver
import time,selenium
caps = {}
caps["bundleId"] = "com.example.apple-samplecode.UICatalogcsj815379479"
driver = webdriver.Remote("http://127.0.0.1:8100/wd/hub", caps)
def wait_element(xpath,timeout=30):
deadline=time.time()+timeout
while time.time() < deadline:
try:
el=driver.find_element_by_xpath(xpath)
return el
except selenium.common.exceptions.NoSuchElementException:
time.sleep(.2)
raise RuntimeError("NoSuchElementException in wait_element")
wait_element("//[@name="Action Sheets"]").click()
wait_element("//[@name="Okay / Cancel"]").click()
el3 = wait_element("//XCUIElementTypeButton[@name="OK"]")
try:
assert el3.text=='OK',"button is not OK"
except AssertError as e:
print(e)
driver.quit()
### 4.2测试脚本2
python
from appium import webdriver
import time,selenium
driver = webdriver.Remote("http://127.0.0.1:8100/wd/hub",{"bundleId":"com.taobaobj.moneyshield"})
driver.implicitly_wait(30)没有实现这个接口,可以使用函数来代替
def wait_element(elem,timeout=30):
deadline = time.time() + timeout
while time.time() < deadline:
try:
el_xpath = driver.find_element_by_xpath(elem)
return el_xpath
except selenium.common.exceptions.NoSuchElemention:
time.sleep(0.2)
raise RuntimeError("Element not found " + el_xpath)
print(driver.session_id)
time.sleep(3)
driver.find_element_by_accessibility_id("工具箱").click()
driver.find_element_by_accessibility_id("诈骗举报").click()
driver.find_element_by_xpath("//XCUIElementTypeStaticText[@name="电话诈骗举报"]").click()
driver.find_element_by_xpath("//XCUIElementTypeScrollView/XCUIElementTypeOther/XCUIElementTypeOther[1]").send_keys("13693347586")
driver.find_element_by_xpath("(//XCUIElementTypeImage[@name="radiobox_normal"])[3]").click()
driver.find_element_by_accessibility_id("请简要描述一下诈骗来电的内容,比如来电时间,对方特征,被骗方式等").send_keys("骗子,大骗子")
driver.find_element_by_accessibility_id("诈骗内容").click()
driver.find_element_by_accessibility_id("提交举报").click()
## 5使用anyproxy抓包和调试
安装:npm i -g anyproxy
6-3-2绕过appium的iOS测试的更多相关文章
- 使用appium进行ios测试,启动inspector时遇到的问题(一)
最近在公司,让做ios的自动化测试,因为以前做过android的自动化测试,用的也是appium,觉得没什么,结果一开始在搭建环境就遇到了很多的问题,现在将我遇到的问题,以及解决方法,给大家分享出来. ...
- appium执行iOS测试脚本并发问题
appium1.4.X+iOS9.X+xcode7.X: appium1.4.x+iOS9.x+xcode7.x,这一整套的配置做移动端自动化测试是测试人员常用的测试框架.关于,这一套测试框架的并发问 ...
- Appium for iOS setup
windows下appium设置 之前研究了一段时间的appium for native app 相应的总结如下: ...
- appium 真机测试问题 出现 instruments crashed on startup
1.appium 真机测试的时候 instruments crashed on startup,必须在真机上打开UI Automation 在设置里: Developer->Enable UI ...
- Appium的iOS环境搭建
操作系统的名称:Mac OS X操作系统的版本:10.13.3 xcode 版本:9.2 java 版本:java8_161 appium destop版本:1.7.3 接下来我们开始踏上搭建Appi ...
- 使用Appium进行iOS的真机自动化测试
windows不支持appium连接ios,只适用于mac 使用Appium进行iOS的真机自动化测试 安装类库 Homebrew 如果没有安装过Homebrew,先安装[ homebrew ] np ...
- 如何利用Pre.im分发iOS测试包
大众创新万众创业,在移动互联网的风口,移动APP开发与测试发展方兴未艾,受到了越来越多的重视.相较 iOS,Android 的开发环境更加开放.Android 开发者要测试应用时,只需发个 APK 安 ...
- 【转】NO.2、Appium之IOS第一个demo
接第一篇:Appium之iOS环境搭建 http://blog.csdn.net/clean_water/article/details/52946191 这个实例继承了unittest,重写了它的s ...
- 【读书笔记】iOS-软件测试与iOS测试
一,软件测试的类型. 1.软件测试按照测试类型,可以划分为:单元测试,集成测试和系统测试. 2.单元测试是指对软件系统中最小可测试单元进行的检查和验证. 3.集成测试,在iOS软件开发中,集成测试主要 ...
随机推荐
- (C/C++学习笔记) 十四. 动态分配
十四. 动态分配 ● C语言实现动态数组 C语言实现动态数组,克服静态数组大小固定的缺陷 C语言中,数组长度必须在创建数组时指定,并且只能是一个常数,不能是变量.一旦定义了一个数组,系统将为它分配一个 ...
- MyEclipse WebSphere开发教程:安装和更新WebSphere 6.1, JAX-WS, EJB 3.0(五)
MyEclipse超值折扣 限量 100 套! 立即开抢>> [MyEclipse最新版下载] MyEclipse支持Java EE技术(如JAX-WS和EJB 3.0),它们以功能包的形 ...
- 小知识,用myeclipes找jar
有些时候,换台电脑就换了一个框架的版本,找对应的jar是一件非常麻烦的事. 我们可以使用myeclipes快速得到我们想要的jar 首先新建一个项目,然后使用myeclipes的自动生成框架技术,生成 ...
- 三步解决 vue 按需加载
1 webpack 的 output 配置 chunkFleName 树干名称: " chunks/[name]-[chunkhash:8].js " 这一步是配合第三步, 生 ...
- WinRAR 0day漏洞 附利用过程
英国安全机构Mohammad Reza Espargham的漏洞实验室发现,流行压缩工具WinRAR 5.21最新版里存在一个安全漏洞,目前该漏洞还属于零日漏洞,同时官方正在全力修补该漏洞.同时报告该 ...
- 逆向路由器固件之解包 Part1
这个系列的文章以逆向路由器固件的方式来挖掘路由器中存在的漏洞. 本篇文章主要以介绍解包固件工具为主.文中演示用的固件可以在这里下载.由于针对设备的攻击越来越多,很多厂商把不提供固件下载作为一种安全策略 ...
- runtime error (运行时错误)
比如说: ①除以零 ②数组越界:int a[3]; a[10000000]=10; ③指针越界:int * p; p=(int *)malloc(5 * sizeof(int)); *(p+10000 ...
- HDU 4970
http://acm.hdu.edu.cn/showproblem.php?pid=4970 比赛的时候线段树水过的,比赛后线段树一直T,看了下正解真的是智商压制 题意:走直线,长度1-N,还有一些人 ...
- spark 与 Hadoop 融合后启动 slf4j提示Class path contains multiple SLF4J bindings
相关参考文献: https://www.oschina.net/question/93435_174549 警告信息如下: 看起来明明就是一个文件,怎么还提示multiple bindings呢,sl ...
- win10笔记本实现双屏显示的自如切换
前言 使用电脑的过程中想一边看内容,一边进行编辑,这就涉及到双屏显示并实现扩展分屏,本文就介绍一下这些操作. 工具 win10-thinkpad-E470:另一块显示屏(博主的是戴尔的显示器):一条外 ...