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

一、输入框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. BZOJ5063旅游——非旋转treap

    题目描述 小奇成功打开了大科学家的电脑. 大科学家打算前往n处景点旅游,他用一个序列来维护它们之间的顺序.初 始时,序列为1,2,...,n. 接着,大科学家进行m次操作来打乱顺序.每次操作有6步: ...

  2. Spring03-AOP

    一. AOP介绍 1. Aop介绍 AOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Object Oriented Programming,面向对象编 ...

  3. Linux 日志分析脚本

    #### 以下代码,若出现无法使用,请根据底下图片,更改参数.根据 apache 日志格式修改 查看 apache 进程ps aux | grep httpd | grep -v grep | wc ...

  4. 【Luogu4396】[AHOI2013]作业(莫队)

    [Luogu4396][AHOI2013]作业(莫队) 题面 洛谷 题解 模板题 #include<iostream> #include<cstdio> #include< ...

  5. [luogu3878][TJOI2010]分金币【模拟退火】

    题目描述 现在有n枚金币,它们可能会有不同的价值,现在要把它们分成两部分,要求这两部分金币数目之差不超过1,问这样分成的两部分金币的价值之差最小是多少? 分析 根据模拟退火的基本套路,先随机分两堆金币 ...

  6. POJ 1845 Sumdiv(逆元)

    题目链接:Sumdiv 题意:给定两个自然数A,B,定义S为A^B所有的自然因子的和,求出S mod 9901的值. 题解:了解下以下知识点   1.整数的唯一分解定理 任意正整数都有且只有唯一的方式 ...

  7. poj2373 Dividing the Path (单调队列+dp)

    题意:给一个长度为L的线段,把它分成一些份,其中每份的长度∈[2A,2B]且为偶数,而且不能在某一些区间内部切开,求最小要分成几份 设f[i]为在i处切一刀,前面的满足要求的最小份数,则f[L]为答案 ...

  8. ACM-ICPC 2018 南京赛区网络预赛 J题Sum(线性筛素数)

    题目链接:https://nanti.jisuanke.com/t/30999 参考自博客:https://kuangbin.github.io/2018/09/01/2018-ACM-ICPC-Na ...

  9. jquery 表单序列化

    1.序列化为URL 编码文本字符串 var serialize = $("form[name=testForm]").serialize(); console.log(serial ...

  10. 爬虫 写入文件时遇到gbk编码错误

    #获取视频地址 # 每次请求一次,然后写文件,这样可以规避多次请求触发反爬虫 r = requests.get('https://www.pearvideo.com/video_1522192') h ...