iOS+Python+Appium真机自动化测试实战

原创 2015年11月09日 16:34:41

1、连接真机跑通

首先要确保真机可以跑通,具体的可以查看我上一篇文章mac appium ios python 之首次运行测试用例打开appium后,进行配置。
如果手机上已经安装了开发包,不需要勾选 AppPath;
填写正确的BundleID和UDID,否则appium无法找到你的待测应用;
配置填写完成后,点击Start按钮,appium与手机开始连接。点击inspector,如果可以正常开启,证明appium与手机的测试环境已经配置好。



2、WebDriver定位Element
开启inspector后,通过inspector定位Element。定位Element的方式有以下几种:

  • find_element_by_class_name(self, name)    //className属性是利用元素的css样式表所引用的伪类名称来进行元素查找的方法。对于任何HTML页面的元素来说,一般程序员或页面设计师会给元素直接赋予一个样式属性或者利用css文件里的伪类来定义元素样式,使元素在页面上显示时能够更加美观。
  • find_element_by_css_selector(self, css_selector)  //一个元素指定了若干个class属性值的”复合样式“,指定了若干个css伪类名作为它的样式属性值时,需要用cssSelector来定位。
  • find_element_by_id(self, id_) //通过指定元素的id来进行定位。
  • find_element_by_link_text(self, link_text)  //通过超文本链接上的文字信息来定位元素。
  • find_element_by_name(self, name)  //通过指定元素的name来进行定位。
  • find_element_by_partial_link_text(self, link_text) //使用关键字与超文本链接上的文字信息进行匹配来定位元素,当定位到多个元素时,find_element 只会返回第一个元素,如果要返回全部需要用find_elements方法。
  • find_element_by_tag_name(self, name) // //通过指定元素的标签名来进行定位。
  • find_element_by_xpath(self, xpath) // 通过XML Path来定位,而在appium中,直接复制inspector中的XPath就可以了。绝对路径以/表示,相对路径则以//表示,当xpath的路径以/开头时,表示让Xpath解析引擎从文档的根节点开始解析。当xpath路径以//开头时,则表示让xpath引擎从文档的任意符合的元素节点开始进行解析。而当/出现在xpath路径中时,则表示寻找父节点的直接子节点,当//出现在xpath路径中时,表示寻找父节点下任意符合条件的子节点,不管嵌套了多少层级(这些下面都有例子,大家可以参照来试验)。

例如:想要点击TextField2输入框,调起键盘,可以通过以下几个方式:
self.driver.find_element_by_name("TextField2").click()
self.driver.find_element_by_xpath(" //UIAApplication[1]/UIAWindow[1]/UIATextField[2]/UIATextField[1]").click()

3、WebDriver事件触发

针对Element操作:
  • click()  //点击元素     
  • clear() //清除元素内容,比如清除输入框内的文本
  • send_keys()  //在元素上模拟按键输入
  • submit()  //提交表单
调用Element接口:
  • get_attribute("name") //得到元素某个属性的内容,比如得到name、value等
  • size()      //元素大小
  • text()      //元素文本


4、Element条件判断

判断元素属性:

  • is_displayed() //元素是否展示
  • is_enable()        //元素是否可用
  • is_selected()      //元素是否被选中

5、异常处理
1. try ... except ...  捕获异常
2. try ... finally ...  无论有无异常都要执行finally中的代码
3. self.assertEqual(value1, value2, failed info)   不相等时抛出异常
4. self.assertTrue(, failedinfo):断言value1 == value2
5. self.assertFalse(, failedinfo):断言value为真
6. self.assertRaises(ValueError, self.widget.resize, -1, -1)  异常

6、数据参数化

在测试过程中,有时会出现重复输入数据的情况,比如登陆,搜索。这时通过读取文件的数据来实现参数化。
创建loginData.txt文档,文档中每行写入一个 用户名和密码。然后通过sendkey()对输入框进行填充。
#-*- coding: utf8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

ReadFile = open(r"loginData.txt","r")
lines = ReadFile.readlines()
num=0
for line in lines:
	key = unicode(line)
	key1 = str(key)
	name = key1.split()[0]
	password=key1.split()[1]
	num=num+1
	print num,name,password
 





版权声明:本文为博主原创文章,未经博主允许不得转载。

Python + Appium+ IOS自动化测试

导言:前面写了Appium环境的搭建,想必木有太大的问题,现在整理下Python + Appium自动化测试脚本 Python Appium官网文档:http://appium.io/slate/c...
  • Temanm
  • Temanm
  • 2015年11月04日 17:42
  • 10502

Appium的ios环境搭建、真机运行app

之前没用过苹果系统,在搭建appium过程中,基本命令都是百度来的,如果你在其中遇到了挠头的问题,不要急躁,慢慢来,一定会成功的。 由于开始并没有做文档积累,所以写的不会很全面。有问题请留言,大家一起...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

浅谈 PageObject模式

做过UI自动化的都晓得,在做UI自动化时定位特别依赖页面,一旦页面发生变更就不得不跟着去修改页面定位。 在webdriver中,加上你想对一个元素定位操作,那么你可能会编写下面的代码: driver....

mac appium ios python 之首次运行测试用例

一、下载例子 点击下载测试例子:sample   下载完成后,解压。 二、启动appium 1、appium介绍   2、python脚本介绍 从终端进入:cd Downloads/samp...

Appium 结合 SafariLuancher曲线救国启动IOS(真机) 自带Safari浏览器做自动化测试.

1. 环境介绍: Mac OS : 10.10.5 , Xcode 6.4, iPhone 4s, Appium 1.5.3(对应iPhone 版本与Mac OS ,Xcode 版本请自行查阅资料....

IOS appium自动化测试python脚本

  • 2015年07月29日 11:54
  • 1KB
  • 下载

Appium+TestNG实现Android真机自动化测试 安装配置说明

Appium-TestNG自动化测试 安装配置 1.安装JDK,环境配置 2.ADT安装,环境配置 ANDROID_HOME  Path  %ANDROID_HOME%\tools;%ANDROI...

移动自动化测试_Appium_003_连华为P9真机测试

我的手机是华为P9的,手头也没有其他测试的机子。就只能拿自己的当小白鼠了~~     1. 开启手机的USB模式。USB模式其实就是android的一个开发者模式,         是哪一款手机,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS+Python+Appium真机自动化测试实战
举报原因:
原因补充:

(最多只允许输入30个字)