python脚本难点
本文主要记录在录制过程中,遇到一些需要特殊处理的脚本。如果有总结不好的地方,希望多多指点。
一、输入框listview选择:
如图:

类似这种情况,选择其中一项的脚本如下:
m = driver.find_element_by_id("id/llBtns")
m.find_element_by_name(u'仓管').click()
二、输入框需要输入中文时:
1、在setUp方法中配置:
def setUp(self):
desired_caps['unicodeKeyboard']=True
desired_caps['resetKeyboard']=True
2、在输入框输入代码中,记得在要输入中文的前面加“u”;例如 driver.find_element_by_id("name").send_keys(u'中文输入')
三、引用excel表格
1、需要下载xlrd;
2、引用xlrd库:import xlrd
3、获取excel表值:
bk = xlrd.open_workbook('D:\\del_tools\\python\\setup\\test\\data.xls') #打开excel表
sh = bk.sheet_by_name('Sheet1') #打开表格的工作表
usermobile = sh.cell_value(1,0) #获取工作表中对应表格的值
#注意:uesermobile的类型是float,如果是手机号的话,这个值会显示为13800138000.0;
#send_keys()方法中,参数要求是string 类型的,所以这里要将float类型转换为string类型:str(int(float x ));
四、处理首页弹窗
思路:查看首页是否存在没弹窗时的元素,存在则表示没有弹窗,不存在则表示存在弹窗。
实例:
#处理开屏广告
def init_case(self):
print(u'处理开屏广告')
try:
sleep(3)
#查看弹窗是否存在
el = self.driver.find_element_by_id("id/llStorage")
print "not exict"
pass
except Exception,ex:
sleep(3)
os.system("adb shell input tap"+" "+str(629)+" "+str(290))
print 'exict'
sleep(2)
这里用了异常处理机制,当不存在弹窗时,执行pass语句;存在弹窗时,点击关闭按钮关闭弹窗。另外,由于无法识别弹窗元素,所以这里用到了点击屏幕某一点的操作:adb shell input tap x y ;
五、滑动屏幕
实例:
#滑动屏幕
#获取手机屏幕大小
def getSize(self):
x = self.driver.get_window_size()['width']
y = self.driver.get_window_size()['height']
return(x,y)
#屏幕向左滑动
def swipeLeft(self,t):
l = getSize(self)
x1 = int(l[0]*0.75)
y1 = int(l[1]*0.5)
x2 = int(l[0]*0.05)
self.driver.swipe(x1,y1,x2,y1,t)
这里的滑动功能主要是参考博文(http://www.cnblogs.com/testhub/p/5949668.html),这里介绍得很好。
六、长按某一点
引用TouchAction
from appium.webdriver.common.touch_action import TouchAction
执行长按动作:
action1 = TouchAction(self.driver)
action1.long_press(a).wait(10000).perform()
python脚本难点的更多相关文章
- freeswitch嵌入python脚本
操作系统:debian8.5_x64 freeswitch 版本 : 1.6.8 python版本:2.7.9 开启python模块 安装python lib库 apt-get install pyt ...
- python脚本后台运行
问题描述: 环境: CentOS6.4 一个用python写的监控脚本test1.py,用while True方式一直运行,在ssh远程(使用putty终端)时通过以下命令启动脚本: python t ...
- 某互联网后台自动化组合测试框架RF+Sikuli+Python脚本
某互联网后台自动化组合测试框架RF+Sikuli+Python脚本 http://www.jianshu.com/p/b3e204c8651a 字数949 阅读323 评论1 喜欢0 一.**Robo ...
- 动态执行python脚本
前言 存在许多独立的python脚本,这些脚本可能会增加,也可能会减少,现在需要按照某种顺序调度这些程序.在python的standard library中,有一个模块imp可以实现动态的调用ptho ...
- 一个获取指定目录下一定格式的文件名称和文件修改时间并保存为文件的python脚本
摘自:http://blog.csdn.net/forandever/article/details/5711319 一个获取指定目录下一定格式的文件名称和文件修改时间并保存为文件的python脚本 ...
- SecureCRT中python脚本编写
SecureCRT中python脚本编写学习指南 SecureCRT python 引言 在测试网络设备中,通常使用脚本对设备端进行配置和测试以及维护:对于PE设备的测试维护人员来说使用较多是Secu ...
- Python脚本配合Linux计划任务工作
经常遇到直接运行Python脚本没有问题,但是一放入/etc/crontab之后就歇菜的情况,总结了一下,大致需要注意以下几点: 1. 脚本首行加入#!/usr/bin/env python 2. 脚 ...
- Labview调用Python脚本
Labview程序框图如下: Python脚本如下: #!/usr/bin/env pythonimport sys #Command Line Arguements are stored in li ...
- 使用Runtime.getRuntime().exec()在java中调用python脚本
举例有一个Python脚本叫test.py,现在想要在Java里调用这个脚本.假定这个test.py里面使用了拓展的包,使得pythoninterpreter之类内嵌的编译器无法使用,那么只能采用ja ...
随机推荐
- 前端 -- CSS基础
一,CSS介绍 CSS(Cascading Style Sheet,层叠样式表)定义如何显示HTML元素. 当浏览器读到一个样式表,它就会按照这个样式表来对文档进行格式化(渲染). 二,CSS语法 1 ...
- 牛客寒假算法训练1 D 欧拉(容斥)
1 #include<bits/stdc++.h> using namespace std; ; typedef long long ll; int p[maxn],a[maxn]; ll ...
- Spring04-SpringEL&Spring JDBC数据访问
一. SpringEL入门 Spring动态语言(简称SpEL) 是一个支持运行时查询和操作对象图的强大的动态语言,语法类似于EL表达式,具有诸如显示方法和基本字符串模板函数等特性. 1. 准备工作 ...
- virtualenv virtualenvwrapper 虚拟环境创建
虚拟环境创建 安装 C:\Users\Python> pip install virtualenv Requirement already satisfied: virtualenv ) C:\ ...
- sql里的正则表达式
SQL语句还可以搭配正则表达式作为查询条件,很是有用. REGEXP_LIKE(匹配)REGEXP_INSTR (包含)REGEXP_REPLACE(替换)REGEXP_SUBSTR(提取) 表 1: ...
- MS-DOS 系统汇编环境之DOSBOX+vim
经过虚拟机的体验,我发现还是dosbox里汇编比较方便..... 一.下载安装 dosbox DOSBOX 准备好 masm.exe.link.exe.debug.exe,放在~/dos下(文件夹名字 ...
- 「CF838B」 Diverging Directions
B. Diverging Directions 题意 给出一个n个点2n-2条边的有向图.n-1条指向远离根方向的边形成一棵树,还有n-1条从非根节点指向根节点的边. q次操作,1修改第x条边权值为y ...
- 「浙大ACM」图森未来杯游记一篇以及简易口胡题解
前言 蒟蒻有参加了ACM比赛,这一次有适合HY和慕容宝宝大佬一起比的,他们好巨啊,把我带飞了. 又是窝掌机,QAQ,他们仗着自己巨,就欺负窝... 我又打了\(4\)个小时的代码,而且那个键盘太恶心了 ...
- 「SCOI2016」美味 解题报告
「SCOI2016」美味 状态极差无比,一个锤子题目而已 考虑每次对\(b\)和\(d\)求\(c=d \ xor \ (a+b)\)的最大值,因为异或每一位是独立的,所以我们可以尝试按位贪心. 如果 ...
- 杨辉三角 II
题目描述 给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行. 在杨辉三角中,每个数是它左上方和右上方的数的和. 示例: 输入: 3 输出: [1,3,3,1] 贴出代码 class ...