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

一、输入框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. BZOJ3724PA2014Final Krolestwo——欧拉回路+构造

    题目描述 你有一个无向连通图,边的总数为偶数.设图中有k个奇点(度数为奇数的点),你需要把它们配成k/2个点对(显然k被2整除).对于每个点对(u,v),你需要用一条长度为偶数(假设每条边长度为1)的 ...

  2. POJ1015-Jury Compromise-dp

    略复杂的dp题. 有n个人,每个人有两个分数di,pi.从中选出m个人,要求|sigma(di)-sigma(pi)|最小,相同时则输出sigma(di)+sigma(pi)最大的情况. 答案完整输出 ...

  3. Json中Date映射到model

    @DateTimeFormat(pattern="yyyy-MM-dd") private Date nenddate; public Date getNenddate() { r ...

  4. Biorhythms POJ - 1006 中国剩余定理

    定理证明:https://blog.csdn.net/d_x_d/article/details/48466957 https://blog.csdn.net/lyy289065406/article ...

  5. 基于Thinkphp5.0 小程序登录插件应用

    资源连接: wulongtao/think-wxminihelper 具体怎么安装,不介绍了,有不懂再问我吧: 主要重点如下: wepy:index.wpy this.$parent.getUserI ...

  6. MT【262】一道常见错题

    若$f(x^2)$的定义域为$[-1,1]$,则函数$f(x)$的定义域为______ 设$a>0$构造$f(x)=\sqrt{x(1-x)(a+x)}$,此时$f(x^2)$的定义域为$[-1 ...

  7. JVM体系结构概述

    ClassLoader(类装载器) 负责加载class文件. class文件在文件开头有特定的文件标示,并且ClassLoader只负责class文件的加载,至于它是否可以运行,则由Execution ...

  8. 如何在代码中减少if else语句的使用

    前言 代码中嵌套的if/else结构往往导致代码不美观,也不易于理解.面向过程的开发中代码有大量的if else,在java中可以用一些设计模式替换掉这些逻辑,那么在js中是否也有类似的方法用来尽可能 ...

  9. 「SCOI2016」萌萌哒 解题报告

    「SCOI2016」萌萌哒 这思路厉害啊.. 容易发现有个暴力是并查集 然后我想了半天线段树优化无果 然后正解是倍增优化并查集 有这个思路就简单了,就是开一个并查集代表每个开头\(i\)每个长\(2^ ...

  10. CF527E Data Center Drama(构造+欧拉回路)

    题目链接 大意: 给你一个无向图. 要求加最少的边,然后给这些无向图的边定向,使得每一个点的出入度都是偶数. 输出定向后的边数和边集. n<=10^5 m<=2*10^5 很巧妙的构造题- ...