记录自动化中遇到的一些错误及解决思路,会持续更新(根据个人情况不同,错误解决方法不同)

1、找不到元素,脚本报“NoSuchElementException:Unable to find element”,或者"定位到了,不能操作,点击无效"

  1) 首先查看自己的“属性值”是否写正确

  2) 元素的标签不唯一,默认找到第一个

  3)向上查看,元素是否在frame或iframe框架中

  4) 查看元素是否在新打开的页面中,需要切换到新窗口

  5) 换其它的定位方式:id/name/class name/tag name/link text/xpath/css selector

  6) 检查元素属性是否是会变动的、是否是隐藏的

  7)添加等待时间sleep(),implicitly_wait(),WebDriverWait(driver, 10, 1).until(定位的元素, messages)

  8) 查看标签的属性是否有“style=’display:none’->。元素不显示。属性改为block

  9) 查看标签的属性是否有‘οnclick=return false’->。取消点击。属性改为false(在百度首页,登陆的属性就是这个)

  10) 针对于9和8这两种情况,我在网上搜到的结果是:执行js修改属性(这种方法我没有试过,不知道有没有效果)

  js=”document.getElementById(‘title‘).style.display=’block’”

  driver.execute_script(js)

2、出现“object is not iterable”:

  1) 首先查看脚本,测试用例出现问题

  2) 组织用例时出现错误(我开始是用for循环遍历y,加入测试集合中,返回集合,老是会出现错误,最后改成下方代码,直接返回y,解决问题)

  

3、出现“Indentation Error”: 是语法问题,脚本代码没有正确对齐

4、使用PO设计模式封装的页面元素类,都有初始化函数“__init__”

5、页面元素调用Page类时候,Page函数,后面括号的“self”不用写

6、Page的初始化包含(self,driver)两个元素,在页面封装类中,初始化中调用方式为

Page.__init__(self,driver)

7、类中定义变量,比如x=“hello”,调用使用:self.x

8、在测试用例调用自己页面封装的类时,经过实例化后po=Lzsp(driver),定义函数时候, 不需要再括号中写self

  

9、提示在页面封装类中没有basePage.py文件中定义好的函数问题:

  1) 新建名字为module_basePage.pth文件,内容为“basePage.py文件”存放路径:例如(“d:\\test\\page”)

  2) 进入python的安装目录,将文件放到python3\lib\sit-packages文件夹下

  3) 在测试用例中导入其他文件夹模块引入:import sys

  4) sys.path.append(“..”)

  5) from .... import ...

10、页面元素封装时候,定位方式一定要写正确,否则会出错

11、进行参数化的时候,读取数据的文件里面代码:“使用绝对地址,加双斜线”

12、运行自动化脚本时候将鼠标放到屏幕中间或者下方,(有可能切换窗口时定位不到)

13、出现”parater must be str“:使用参数有问题,(我的是因为二次定位写的方式有问题)

  1) 在封装页面元素定位方式时,经常会会遇到二次定位

  2) 第一次定位调用基础类的方法,第二次定位就正常写就行了,例子如下:

  3) 我是使用:x=self.find_element(locator).find_element_by_id(locator)

  4) 因为我在页面封装中将把定位方式和元素都放到列表中,第二次的元素不写定位方式,只写元素

14、在window命令界面下使用:”python 文件名.py >>report/log.txt 2>&1”命令把结果写入文本中

15、在页面封装中,类的初始化使用如下样式:

  def __init__(self,driver):

    Page.__init__(self,driver)

16、打印输出时显示“not all arguments curerted during string format”是说明前后参数不对应:%前面是一个“%s”,而后面的参数是(“xy”,“xy”)两个

17、同一个模块中的两个类,第二个调用第一个类的方法,直接使用“继承”,2继承1,

  def __init__(self,driver):

    Logger.__init__(self,’OA’)

    self.log=self.getlog()

    self.driver=driver

18、Python对文件进行“复制”和“改名”

  1) 首先引入os模块:import os

  2) 复制:os.system(“copy 文件名.txt 新文件名.txt”)

  3) 改名:os.rename(“文件名.txt”,”新文件名.txt”

19、读取txt文件中的汉字和字符打印却是一串编码,像这种:(b'\xef\xbb\xbf\xe5\xa5\xbd\xe7\x9a\x84\r\n')

  解决代码如下:

  x=open(“2.txt”,”rb”)

  y=x.readlines()

  for i in y:

    j=i.decode(‘utf-8’)  :在原有代码增加一句

    Print (j)

  x.close()

20、出现“str object is not callable”的问题

  原因是:使用定义的变量名字与内置模块名字相同,(我的原因是:在basePage.py文件中,“得到文本的函数,element.txt后面多加了一对括号”,取消就好了)

  针对自己的脚本,检查变量的名字,相同的更改一下,

  

21、在编写自动化用例中,会打开多个窗口,经常会遇到,第一次得到的句柄列表为a=[1,2],第二次得到的句柄列表是b=[1,3,2],偶尔不会

  按照顺序排序(一般都是按顺序排的),要切换到句柄3,

  可以使用如下方法得到句柄3:

  c=list(set(b)-set(a))=[3]    :先把a和b变成集合,再取b不同于a的元素

  最后再转换为列表赋值给变量c

  driver.switch_to.window(c[0])   :切换到新窗口c

作者: qupan

博客地址:http://www.cnblogs.com/qupan/

声明:本文已获作者授权转载,著作权归作者所有。

随意支持下,一起做好分享

高效的交流圈子知识星球:开源优测  66¥/年 几百个主题了,点击加入,3天内可退款

扫一扫加我微信,注明:入群,加入微信群

扫一扫或长按关注开源优测公众号,原创文章首发平台

在公众号里回复一下关键字获取对应的系列文章

物联网 appium 大数据测试 RobotFramework Python
自动驾驶 jmeter selenium jenkins 接口测试

顺手点点点右下角的

21条自动化测试过程中遭遇的问题及解决思路相关推荐

  1. 自动化测试遇到的难点_自动化测试过程中遇到的问题主要有什么?

    1 自动化测试过程中遇到的问题主要有什 么? 问题:自动化测试过程中遇到的问题主要有什么? 回答: 1. 对自动化测试的期望值太高.很多人想把自动化测试完全替 代人工测试, 如果期望不现实, 无论测试 ...

  2. 测试过程中常见的中间件及测试思路

    1.中间件是什么 中间件(英语:Middleware)顾名思义是系统软件和用户应用软件之间连接的软件,以便于软件各部件之间的沟通,特别是应用软件对于系统软件的集中的逻辑,是一种独立的系统软件或服务程序 ...

  3. Table 组件构建过程中遇到的问题与解决思路

    在 GearCase 开源项目构建 Table 组件的过程中.遇到了各式各样的问题,最后尝试了各种方法去解决这些问题. 遇到的部分问题 checkbox 的全选和半选问题 table 组件的排序请求方 ...

  4. 工作中遭遇的问题及解决办法

    85 对编辑框控件进行排序  ctrl+D 依次点击排序 84 放到数组里或者hashmap里,循环比较:    或者在任意值修改过的记个变量m_bEidt:    也可以定义个结构体,把结构比较的单 ...

  5. Unity3D 2D游戏中寻径算法的一些解决思路

    需求 unity3d的3d开发环境中,原生自带了Navigation的组件,可以很便捷快速的实现寻路功能.但是在原生的2d中并没有相同的功能. 现在国内很多手机游戏都有自动寻路的功能,或者游戏中存在一 ...

  6. 关于开发中怎么找问题并且解决思路(实操)

    在开发中不仅写代码的能力要好,同时也要提升找出问题的能力,不然就没什么时间写代码了. 场景:导出数据,实体类字段使用 @Excel(name = "是否为本年度项目",readCo ...

  7. Ubuntu安装软件或更新过程中出现问题,一些解决思路

    Ubuntu在安装软件或者进行系统更新时,可能会遇到一些问题.尤其是Linux内核版本升级时极有可能造成一些错误,甚至造成系统不能启动.以下是我在使用Ubuntu过程中会遇到的问题,依照网络上提供的方 ...

  8. 关于Ubantu系统中蓝牙问题及一些解决思路

    当我们想要在Ubantu系统(可能别的系统也会遇到)中打开蓝牙的时候,可能会提示: 1.没有检测到蓝牙适配器 / 蓝牙守护进程未启动 / BlueZ未运行 等等信息. 这时我们可以用命令: syste ...

  9. 想要成为软件开发中的王者,需要明白的 21 条准则

    原文:21 ideas for Software Developer 作者:Tim Marinin 翻译:牟云飞 审校:苏宓,欢迎技术投稿.约稿.给文章纠错,请发送邮件至tumin@csdn.net. ...

  10. 光纤中的多种光学模式芯径_光纤光缆的21条基础知识

    光纤是光导纤维的简写,是一种由玻璃或塑料制成的纤维,可作为光传导工具.传输原理是"光的全反射",光纤通讯有良好的特性,如:保密性.容量高.速率高等.所以光纤应用极为广泛,大致有以下 ...

最新文章

  1. java 泛型 父子,Java泛型-mb601cf8a78cc07的博客-51CTO博客
  2. 编程异常——假设你报createSQLQuery is not valid without active transaction,...
  3. 计算机争夺战作文,电脑争夺战作文600字
  4. (FFOS Gecko Gaia) OTA - 转移至System App
  5. golang 热插拨 插件_从零开始实现一个插件化框架(一)
  6. 基本明白了什么是冲突域和广播域
  7. linux引导时输入特殊信息的含义
  8. WIFI vs 无线网
  9. [转]如何在.NET MVC中使用jQuery并返回JSON数据
  10. ZZULIOJ 1095: 时间间隔(多实例测试)
  11. java switch嵌套if_(新手)Java课程作业,请各位老哥指教:综合运用嵌套if选择结构、switch选择结构、多重if选择结构实现商品换购功能...
  12. win7 64位装sql2000
  13. 2023考研王道数据结构知识梳理
  14. C#实现一个局域网文件传输工具
  15. Error:Excepted resource of type id
  16. 演示4:python的币值转换-含tkinter
  17. 港科夜闻|香港科大汪扬教授轻松访谈:对话西泽投资管理主席刘央女士,倾听她跌宕起伏的30年投资生涯...
  18. 循环日程表(递归、分治)
  19. 软件测试简历自我评价范文,测试工程师求职简历自我评价范文
  20. 假信息正在伤害孩子!作为信息时代的原住民,孩子如何辨别信息真伪?

热门文章

  1. 分度值1g是什么意思_分度值1g是什么意思_【移动通信发展史】从1G到5G—是我们改变了生活,还是生活改变了我们?......
  2. Centos7重置密码后采用密钥登陆
  3. wechaty-微信聊天机器人-调研分析
  4. 计算机网络的硬件系统包含那些部件,计算机的硬件系统主要包括哪五大部件
  5. GAMMA初学笔记一
  6. ue4是什么意思_u3d和ue4的区别是什么
  7. WWW2022推荐系统/计算广告论文集锦
  8. instant java,java.time.Instant.compareTo()方法
  9. jQuery02(达)
  10. 煮酒探西游 吴闲云全面解读西游记