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测试的更多相关文章

  1. 使用appium进行ios测试,启动inspector时遇到的问题(一)

    最近在公司,让做ios的自动化测试,因为以前做过android的自动化测试,用的也是appium,觉得没什么,结果一开始在搭建环境就遇到了很多的问题,现在将我遇到的问题,以及解决方法,给大家分享出来. ...

  2. appium执行iOS测试脚本并发问题

    appium1.4.X+iOS9.X+xcode7.X: appium1.4.x+iOS9.x+xcode7.x,这一整套的配置做移动端自动化测试是测试人员常用的测试框架.关于,这一套测试框架的并发问 ...

  3. Appium for iOS setup

    windows下appium设置 之前研究了一段时间的appium for native app 相应的总结如下:                                           ...

  4. appium 真机测试问题 出现 instruments crashed on startup

    1.appium 真机测试的时候 instruments crashed on startup,必须在真机上打开UI Automation 在设置里: Developer->Enable UI ...

  5. Appium的iOS环境搭建

    操作系统的名称:Mac OS X操作系统的版本:10.13.3 xcode 版本:9.2 java 版本:java8_161 appium destop版本:1.7.3 接下来我们开始踏上搭建Appi ...

  6. 使用Appium进行iOS的真机自动化测试

    windows不支持appium连接ios,只适用于mac 使用Appium进行iOS的真机自动化测试 安装类库 Homebrew 如果没有安装过Homebrew,先安装[ homebrew ] np ...

  7. 如何利用Pre.im分发iOS测试包

    大众创新万众创业,在移动互联网的风口,移动APP开发与测试发展方兴未艾,受到了越来越多的重视.相较 iOS,Android 的开发环境更加开放.Android 开发者要测试应用时,只需发个 APK 安 ...

  8. 【转】NO.2、Appium之IOS第一个demo

    接第一篇:Appium之iOS环境搭建 http://blog.csdn.net/clean_water/article/details/52946191 这个实例继承了unittest,重写了它的s ...

  9. 【读书笔记】iOS-软件测试与iOS测试

    一,软件测试的类型. 1.软件测试按照测试类型,可以划分为:单元测试,集成测试和系统测试. 2.单元测试是指对软件系统中最小可测试单元进行的检查和验证. 3.集成测试,在iOS软件开发中,集成测试主要 ...

随机推荐

  1. 团队作业之现场UML设计

    项目UML设计(团队) 团队信息 团队名:第三视角 各成员学号及姓名 姓名 学号 博客链接 张扬(组长) 031602345 http://www.cnblogs.com/sxZhangYang/p/ ...

  2. 【笔记】《深入浅出MFC》第5章 总观Application Framework

    凝聚性强.组织化强的类库就是Application Framework.一组合作无间的对象,彼此藉消息的流动而沟通,并且互相调用对方的函数以求完成任务,这就是Application Framework ...

  3. Mysql命令insert into:向表中插入数据(记录)

    insert into命令用于向表中插入数据. insert into命令格式:insert into <表名> [(<字段名1>[,..<字段名n > ])] v ...

  4. 强大的Grafana worldping插件

    安装worldping插件: 官方插件地址 查看安装说明,在grafana server上执行命令,完成后重启grafana server,重启,请注意,要重启 重启grafana service g ...

  5. NSJSONSerialization的简单用法

    NSJSONSerialization 苹果官方给出的解析方式是性能最优越的,虽然用起来稍显复杂. 首先我们在上面已经有了我希望得到的信息的网站的API给我们的URL,在OC中,我要加载一个NSURL ...

  6. E - 追求

    经历了那晚的竹林深处相识后静竹对数学念念不忘,产生了好感!为了追求数学,她想到了一招,要想搞定女友,搞定闺中密友.于是,她秘密与数学的好友斐波那契见面了.学数学的真是不一样,斐波那契的出现前提也是需要 ...

  7. ElasticSearch(七):ElasticSearch集群的搭建

    由于资源有限,使用是一台机器上安装三个elasticSearch服务端组成的集群. 1. 安装elasticSearch6.3.2 将原本安装的elasticSearch6.3.2复制两份,分别重新命 ...

  8. 关于bfs与dfs的标记区别

    回顾一下dfs与bfs的使用,由于二者都需要避免走重复的路,所以二者都需要对数组进行标记 而二者的标记操作的不同点是 dfs会对数组的标记进行清除(包含两种标记,一种对形参变量的标记,这个清除是返回上 ...

  9. test20181006 石头剪刀布

    题意 分析 考场做法同题解一样. std代码. #include<bits/stdc++.h> using namespace std; template <typename T&g ...

  10. js 每隔四位加一个空格

    var str = '2016060520103600466'; var str=str.replace(/\s/g,'').replace(/(.{4})/g,"$1 "); a ...