本文主要记录在录制过程中,遇到一些需要特殊处理的脚本。如果有总结不好的地方,希望多多指点。

一、输入框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脚本难点的更多相关文章

  1. freeswitch嵌入python脚本

    操作系统:debian8.5_x64 freeswitch 版本 : 1.6.8 python版本:2.7.9 开启python模块 安装python lib库 apt-get install pyt ...

  2. python脚本后台运行

    问题描述: 环境: CentOS6.4 一个用python写的监控脚本test1.py,用while True方式一直运行,在ssh远程(使用putty终端)时通过以下命令启动脚本: python t ...

  3. 某互联网后台自动化组合测试框架RF+Sikuli+Python脚本

    某互联网后台自动化组合测试框架RF+Sikuli+Python脚本 http://www.jianshu.com/p/b3e204c8651a 字数949 阅读323 评论1 喜欢0 一.**Robo ...

  4. 动态执行python脚本

    前言 存在许多独立的python脚本,这些脚本可能会增加,也可能会减少,现在需要按照某种顺序调度这些程序.在python的standard library中,有一个模块imp可以实现动态的调用ptho ...

  5. 一个获取指定目录下一定格式的文件名称和文件修改时间并保存为文件的python脚本

    摘自:http://blog.csdn.net/forandever/article/details/5711319 一个获取指定目录下一定格式的文件名称和文件修改时间并保存为文件的python脚本 ...

  6. SecureCRT中python脚本编写

    SecureCRT中python脚本编写学习指南 SecureCRT python 引言 在测试网络设备中,通常使用脚本对设备端进行配置和测试以及维护:对于PE设备的测试维护人员来说使用较多是Secu ...

  7. Python脚本配合Linux计划任务工作

    经常遇到直接运行Python脚本没有问题,但是一放入/etc/crontab之后就歇菜的情况,总结了一下,大致需要注意以下几点: 1. 脚本首行加入#!/usr/bin/env python 2. 脚 ...

  8. Labview调用Python脚本

    Labview程序框图如下: Python脚本如下: #!/usr/bin/env pythonimport sys #Command Line Arguements are stored in li ...

  9. 使用Runtime.getRuntime().exec()在java中调用python脚本

    举例有一个Python脚本叫test.py,现在想要在Java里调用这个脚本.假定这个test.py里面使用了拓展的包,使得pythoninterpreter之类内嵌的编译器无法使用,那么只能采用ja ...

随机推荐

  1. Codeforces1101G (Zero XOR Subset)-less 【线性基】【贪心】

    题目分析: 考虑到这是一个区间的异或问题,不妨求出前缀和,令$sum[i] = Xor_{j=1}^{i}a[j]$. 对于区间$[l,r]$的异或结果,等于$sum[r] \oplus sum[l- ...

  2. MT【263】待定系数

    已知$a,b>0$且$ab(a+b)=4$,求$2a+b$的最小值_____ 解答:$\sqrt{3}(2a+b)\ge(\sqrt{3}+1)a+b+(\sqrt{3}-1)(a+b)\ge3 ...

  3. 自学华为IoT物联网_12 Huawei LiteOS基础架构

    点击返回自学华为IoT物流网 自学华为IoT物联网_12 Huawei LiteOS基础架构 一.1个Huawei LiteOS Kernel 1.1 huawei LiteOS Kernel基本框架 ...

  4. 配置日志中显示IP

    package com.demo.conf; import ch.qos.logback.classic.pattern.ClassicConverter; import ch.qos.logback ...

  5. [HAOI2015]按位或(容斥+前缀和)

    题目描述 刚开始你有一个数字0,每一秒钟你会随机选择一个[0,2^n-1]的数字,与你手上的数字进行或(c++,c的|,pascal 的or)操作.选择数字i的概率是p[i].保证0<=p[i] ...

  6. zabbix3.2监控mysql

    应用环境:ZABBIX一款强大的企业级可分布式的开源监控工具,从2.2版本开始支持MySQL监控(自带监控模板), 不过,默认添加MySQL模板后是无法使用的,这里小记一下部署监控MySQL的简单全过 ...

  7. Nginx实现负载均衡的几种方式

    负载均衡的几种常用方式 1.轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除. upstream backserver { server 192.168 ...

  8. 20165223 week4测试补交与总结

    JDB调试程序 调试代码 public class SumofRecur1{ public static void main(String[] args) { int i = 0; for(Strin ...

  9. 初入react-redux (基于webpack babel的react应用框架)

    react这么热门的框架也不介绍了,redux是一个单项数据流的小框架,当然不只配合react,它起初是为react而配的,现在面向所有了,比如ng-redux的项目.redux做为react的标准搭 ...

  10. RAP Mock.js语法规范

    Mock.js 的语法规范包括两部分: 数据模板定义规范(Data Template Definition,DTD) 数据占位符定义规范(Data Placeholder Definition,DPD ...