[Selenium] IOS 之 appium
从 Selenium 的官方文档来看,推荐用户使用 ios-driver 或 appium 而不是官方发布的 iPone Driver. 他们的地址分别是:
http://ios-driver.github.io/ios-driver
http://appium.io/
1、Appium 简介:
Appium 是一个开源的,跨平台的测试框架,可以用来测试移动设备上 Native 或 Hybrid 的应用程序。Appium 同时支持 iOS、Android 和 FirefoxOS 等多种移动平台。
Appium 的工作原理:通过 WebDriver 的 JSON Wire 协议来驱动 iOS 或 Android 系统的 UIAutomator 框架,或基于Gecko 的 Marionette 框架。
Appium 的优势:Appium 在不同移动平台上均使用了标准的自动化 API,所以用户不需要重新编译或者修改 app。Appium 支持 Selenium WebDriver 能支持的所有绑定编程语言,如 Java,Python,JavaScript,C#,Ruby等
2、Appium 安装
1、使用 Node.js 安装 Appium,命令如下。安装之前应先确认系统中已安装了Node.js
$ sudo npm install -g appium
2、直接从官网下载并解压,地址如下
https://gitbub.com/appium/appium/releases
3、直接下载Appium.dmg文件并解压,这种方式是带 UI 的 app,地址如下
https://bitbucket.org/appium/appium.app/downloads
4、启动Appium
$appium &
启动成功后看到如下信息:
info:Welcome to Appium v0.13.0
info:Appium REST http interface listener started on 0.0.0.0:4723
info -socket.io started
如果下载的是Appium.app 文件,则双击打开即可
3、Appium 的 iOS 配置
1、确保 Mac OS X 的最低版本为 10.7
2、Xcode/iOS 兼容 Xcode 4.6.3/iOS6.1.x,或Xcode 5/iOS 7.x。不要使用高版本的 Xcode 配合低版本的 iOS SDK,如Xcode 5/iOS 6.x
3、确保授权 iOS 模拟器的使用
3.1、如果通过 Node.js 安装Appium ,则运行如下命令即可
$sudo authorize_ios
其中,authorize_ios 是Appium npm 包中的一个二进制文件,授权成功后的信息如下
Enabling DevToolsSecurity
Updating securityy db for developer access
Granting access to built-in simulator apps
Authorization successful
3.2、如果通过在官网下载源码包的方式来运行Appium,则允许如下命令:
$sudo grunt authorize
3.3、如果直接使用Appium.app,在在UI 上操作即可
4、多个 iOS SDK qieh
Appium 使用 Xcode 的 Instruments 来启动 iOS 模拟器,并且默认使用当前安装的 Xcode 的最高版本的 iOS SDK。如果需要在特定的 iOS 上测试,在启动 Appium 之前,需要切换到特定的测试版本上,使用如下命令进行切换:
$sudo xcode-select- -switch/Applications/Xcode.app/Contents/Developer/
4、Appium 的Web app实例
首先确认 iOS 模拟器或真实设备上 Safari 浏览器的 Web Inspector 为打开状态,操作路径为Setting->Safari->Advanced->Web Inspector
接下来启动Appium
$appium &
启动成功后看到如下信息:
info:Welcome to Appium v0.13.0
info:Appium REST http interface listener started on 0.0.0.0:4723
info -socket.io started
以打开百度首页为例,以下为测试用例代码
package com.learningselenium.ios;
import java.net.URL;
import junit.framework.TestCase;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
public class testiOSAppiumBaidu extends TestCase{
public void testBaidu() throws Exception{
DesiredCapabilities safari = new DesiredCapabilities();
safari.setCapability("app", "safari");
RemoteWebDriver driver = new RemoteWebDriver(new URL("http://localhost:4723/wd/hub"), safari);
driver.get("http://www.baidu.com");
String url = driver.getCurrentUrl();
System.out.println(url);
driver.close();
}
}
[Selenium] IOS 之 appium的更多相关文章
- 移动端自动化自动化(Android&iOS)——Appium
Appium-Python 移动端自动化环境搭建 Appium介绍 Appium是一个开源.跨平台的测试框架,可以用来测试原生及混合的移动端应用.Appium支持iOS.Android及Firefox ...
- [Selenium] IOS 之 ios-driver
从 Selenium 的官方文档来看,推荐用户使用 ios-driver 或 appium 而不是官方发布的 iPone Driver. 他们的地址分别是: http://ios-driver.git ...
- iOS simulator+Appium
Why are you trying to run iOS automation on a real device? That's a bad idea. iOS Automation on a re ...
- App自动化测试探索(二)MAC环境搭建iOS+Python+Appium测试环境
环境搭建要求,MAC 机器一台,要求 Xcode 8.0以上 1. 安装 Homebrew /usr/bin/ruby -e "$(curl -fsSL https://raw.github ...
- appium ,selenium ,webdriver 运行原理与机制
做测试开发的童鞋都知道,UI自动化你绕不开selenium, webdrvier, appium框架,那么这三者之间有什么关联,它们的原理是什么呢? 简单来说就是: Selenium2 将浏览器原生 ...
- Appium+Python3+iOS定位元素
前言: 最近在做IOS自动化测试,IOS的Appium环境都配置OK,执行起来真的慢,慢到怀疑人生,那么今天就来总结一下IOS定位方式和各个定位方式的速度排序. 据我观察,按查找元素的顺序速度,从快到 ...
- selenium与appium怎样联系
appium是手机app端的自动化,它继承了webdriver(也就是selenium 2) 不过appium仍然需要通过selenium最后做测试工具,但是appium起到了一个连 ...
- Appium自动化测试框架研究(2)——搭建IOS环境
今天的文章讲iOS的Appium环境搭建. 对于iOS而言,只能在Mac笔记本上安装Appium,以及所需要的各种组件. 也许有人会问,能否在Windows系统上使用Appium测试iOS手机,这不就 ...
- selenium&appium中的三种等待方式---基于python
我们在实际使用selenium或者appium时,等待下个等待定位的元素出现,特别是web端加载的过程,都需要用到等待,而等待方式的设置是保证脚本稳定有效运行的一个非常重要的手段,在selenium中 ...
随机推荐
- Day 4 Linux基础
Linux基础(指令篇) 一.Linux命令 1.Linux命令行的语法格式: 命令+选项+参数 命令:告诉Linux(UNIX)操作系统做(执行)什么. 选项:说明命令运行的方式(可以改变命令的功能 ...
- Day 2 操作系统基础
课前复习新知识 RAID(Redundant Arrays of Independent Disks)独立冗余磁盘阵列 定义:加州大学伯克利分校1987年提出,最初是为了组合小的廉价磁盘来代替大的昂贵 ...
- Mysql Binlog日志文件介绍
一.Binlog简介 官方文档参考 https://dev.mysql.com/doc/refman/5.5/en/binary-log.html Binlog(Binary Log) 指数据库的表创 ...
- python判断一个字符串是否是小数
最近在写代码的时候,发现一个问题,想判断一个字符串是不是一个合法的小数,发现字符串没有内置判断小数的方法,然后就写了一个判断字符串是否是小数,可以判断正负小数,代码如下: 1 2 3 4 5 6 ...
- android apk程序升级
1 .设置apk版本号 Androidmanifest.xml <manifest xmlns:android="http://schemas.android.com/apk/res/ ...
- 【postman】安装使用说明
1.下载 下载地址:https://pan.baidu.com/s/1miyYjig?errno=0&errmsg=Auth%20Login%20Sucess&&bduss=& ...
- windows 80端口占用情况查询
在开始-运行,输入CMD打开命令行界面,输入命令 netstat -ano | findstr "80" (注80是你想要看查看的端口号) 就会输出包含80端口使用的情况 具体对应 ...
- docker on UP Board
前言 原创文章,转载引用务必注明链接.水平有限,如有疏漏,欢迎指正. 本文使用Markdown写成,为获得更好的阅读体验和正常的图片.链接,请访问我的博客: http://www.cnblogs.co ...
- 【c语言】二维数组中的查找,杨氏矩阵在一个二维数组中,每行都依照从左到右的递增的顺序排序,输入这种一个数组和一个数,推断数组中是否包括这个数
// 二维数组中的查找,杨氏矩阵在一个二维数组中.每行都依照从左到右的递增的顺序排序. // 每列都依照从上到下递增的顺序排序.请完毕一个函数,输入这种一个数组和一个数.推断数组中是否包括这个数 #i ...
- 使网页适应UIWebView的宽度
比較简单的做法是:在- (void)webViewDidFinishLoad:这种方法中,改动JavaScript的值: //UIWebViewDelegate - (void)webViewDidF ...