引言:

  在做UI自动化测试过程中,总是会遇到各种问题,而解决问题总是会花费一些时间和心思,但是解决后对于自己就是一种成长,持续积累,当可能遇到的问题都被你遇到过,并且都知道解决办法,这就是一种经验的价值,也是一个工程师值钱的地方¥¥¥¥¥¥¥¥¥

正文:

  问题1:

  当出现如下错误时:ElementNotVisibleException: Message: element not visible,表示元素是不可见的;首先确认是不是你定位元素就有问题导致元素确实不存在;其次有些元素可能确实需要一定的加载时间,如果没有加等待,脚本程序可能会运行过快,从而定位不到这个元素;

  解决方法:

  1.增加等待时间,time.sleep(5),这种方法比较通用,但是缺点时,如果加载的时间超过了给定的值,依然会报错;而且不管加载时间是长是短都需要sleep 5s;如果代码里出现很多这个,会增加脚本执行的时间;

  2.设置等待,包含显示等待和隐式等待,在一定时间内等待元素的出现,如果出现了,就即刻执行下面的代码,不会浪费多余的时间,至于具体的设置方法,请百度吧;

  问题2:

  当出现如下错误selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document,意思是页面元素没有连接成功,一般是由于返回或刷新页面导致丢失;这个问题还是比较常见的,比如:在增加一个什么内容时,操作页面填写好内容,点击保存,一般会返回到列表页,但是列表中没有实时出现新增的这一条数据,这是时候如果你定位列表中的数据查找新创建的数据,就会报这个错误;

  解决方法:

  添加完成保存后,先增加一步刷新页面的操作,driver.refresh(),然后再去定位新创建的数据;

  问题3:

  python自身的问题,python2默认的字符编码格式是ascii,所以在写自动化脚本的时候,涉及到中文传值时,就会报错,一堆乱码;

  解决方法:

  添加一个文件sitecustomize.py,这个文件的作用是每次启动Python的时候自动设置编码格式为utf-8;文件内容:

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

  可以重新启动python,查看一下默认编码格式是否设置生效:

>>> import sys
>>> sys.getdefaultencoding()
'utf-8'

  然后再去执行脚本,应该就没有问题了;

selenium自动化测试遇到的问题积累--持续积累中的更多相关文章

  1. 《手把手教你》系列技巧篇(十八)-java+ selenium自动化测试-元素定位大法之By css中卷(详细教程)

    1.简介 按计划今天宏哥继续讲解倚天剑-css的定位元素的方法:ID属性值定位.其他属性值定位和使用属性值的一部分定位(这个类似xpath的模糊定位). 2.常用定位方法(8种) (1)id(2)na ...

  2. 《手把手教你》系列技巧篇(十五)-java+ selenium自动化测试-元素定位大法之By xpath中卷(详细教程)

    1.简介 按宏哥计划,本文继续介绍WebDriver关于元素定位大法,这篇介绍定位倒数二个方法:By xpath.xpath 的定位方法, 非常强大.  使用这种方法几乎可以定位到页面上的任意元素. ...

  3. 来自平时工作中的css知识的积累---持续补充中

    ① 现代浏览器中,<img>元素默认情况下底部会有空白,那么这个空白到底是从哪里来的? 解惑: method-one:猛戳 来自知乎的解答 method-two: 延伸阅读 what is ...

  4. 来自平时工作中的javascript知识的积累---持续补充中

    ① SeaJs和RequireJS最大的区别 解惑:来自豆友 ② javascript中如何判断undefined var exp = undefined; if (exp === undefined ...

  5. Jenkins持续集成项目搭建与实践——基于Python Selenium自动化测试(自由风格)

    Jenkins简介 Jenkins是Java编写的非常流行的持续集成(CI)服务,起源于Hudson项目.所以Jenkins和Hudson功能相似. Jenkins支持各种版本的控制工具,如CVS.S ...

  6. Selenium自动化测试Python六:持续集成

    持续集成 欢迎阅读WebDriver持续集成讲义.本篇讲义将会重点介绍Selenium WebDriver API的在持续集成中的使用方法,以及使用Jenkins持续集成工具进行自动化测试的设计. 持 ...

  7. Selenium自动化测试框架介绍

    Selenium自动化测试框架介绍 1.测试架构作用 a.可维护性 b.提高编写脚本效率 c.提高脚本的可读性 2.框架的几大要素: Driver管理,脚本,数据,元素对象,LOG,报告,运行机制,失 ...

  8. Selenium自动化测试,接口自动化测试开发,性能测试从入门到精通

    Selenium自动化测试,接口自动化测试开发,性能测试从入门到精通Selenium接口性能自动化测试基础部分:分层自动化思想Slenium介绍Selenium1.0/2.0/3.0Slenium R ...

  9. Selenium自动化测试Python一:Selenium入门

    Selenium入门 欢迎阅读Selenium入门讲义,本讲义将会重点介绍Selenium的入门知识以及Selenium的前置知识. 自动化测试的基础 在Selenium的课程以前,我们先回顾一下软件 ...

随机推荐

  1. HDU1024 最大M子段和问题 (单调队列优化)

    Max Sum Plus Plus Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others ...

  2. 生成html报告并整合自动发动邮件功能

    from HTMLTestRunner import HTMLTestRunnerfrom email.mime.text import MIMETextfrom email.header impor ...

  3. (2)socket的基础使用(基于TCP协议)

    socket()模块函数用法 基于TCP协议的套接字程序 netstart -an | findstr 8080 #查看所有TCP和UDP协议的状态,用findstr进行过滤监听8080端口 服务端套 ...

  4. hdu2088

    hdu2088 #include<stdio.h> #include<algorithm> using namespace std; ]; int main(){ ; ){ , ...

  5. benthos stream 处理工具说明

    benthos 是golang 编写的流处理工具,同时也可以作为一个类库使用,当前支持的source sink 还是比较全的 (kafka rabbitmq http service s3 redis ...

  6. centos6 ext4修复

    输入root密码后: fsck -y /dev/mapper/vg_logserv-lv_root 修复完后重启 reboot 若忘记了root密码,可用系统ISO盘引导进入Rescue救援模式 在这 ...

  7. Redis的多线程

    Redis是单线程内部机制,那么怎么实现并发?在单机上部署多个Redis实例.

  8. javascript的循环使用

    学习网址: http://www.w3school.com.cn/js/js_loop_for.asp JavaScript 循环 如果您希望一遍又一遍地运行相同的代码,并且每次的值都不同,那么使用循 ...

  9. TopCoder客户端安装

    参考:https://blog.csdn.net/github_39353095/article/details/76165940 首先,下载 Java 环境. https://www.java.co ...

  10. hadoop家族学习路线图之hadoop产品大全

    大数据这个词也许几年前你听着还会觉得陌生,但我相信你现在听到hadoop这个词的时候你应该都会觉得“熟悉”!越来越发现身边从事hadoop开发或者是正在学习hadoop的人变多了.作为一个hadoop ...