六、常见的异常错误处理

NoSuchElementException: Message: Unable to locate element: {"method":"xpath","selector":"//div[id='urs']//form[@class='form-horizontal']//div[@class='span2 offset7 controls']//button[@class='btn btn-primary']"}

这个错误的可能性属于

①没有定位到元素的情况,此时要检查定位的xpath语句是不是写的错误,可以在Firefox上的Firebug的xpath工具栏上输入命令行看能不能定位到,再根据调试

②定位的xpath语句虽然正确,但是页面还没有加载完成,也就是说还没有加载出这个元素,解决的方法是加上sleeptime的机制,例如头文件import time,然后在页面打开后cls.driver = webdriver.Firefox()引入睡眠时间函数time.sleep(3),这样就可以等待页面加载3秒钟以后再执行后续的脚本

ElementNotVisibleException: Message: Element is not currently visible and so may not be interacted with

Stacktrace:

at fxdriver.preconditions.visible

这个错误属于虽然定位到了元素,但是定位到了多个,因为页面上名称与此相同的元素有多个,而且第一个是不可见的,就报了这个错误,解决方法是分级定位,例如找到了//button[@class='btn btn-primary'],可以再向上级去找//div[@class='span2 offset7 controls']//button[@class='btn btn-primary'],如果还找不到再向上级找,以此类推,最后的定位xpath为//div[@id='urs']//form[@class='form-horizontal']//div[@class='span2 offset7 controls']//button[@class='btn btn-primary'],当然此时要注意层级不要分的太多,这样会影响定位的效率(会找的很慢)

AssertionError: u'\u76f4\u64ad\u95f4\u540e\u53f0\u7ba1\u7406\u7cfb\u7edf' != u'\u76f4\u64ad\u95f4\u540e\u53f0\u7ba1\u7406\u7cfb'- \u76f4\u64ad\u95f4\u540e\u53f0\u7ba1\u7406\u7cfb\u7edf

?         -

+ \u76f4\u64ad\u95f4\u540e\u53f0\u7ba1\u7406\u7cfb

这个错误属于在执行Assert语句时返回了不正确的比较结果,所以就输出了AssertionError log信息,这个问题要分三个步骤来检查①首先是检查下定位的内容是不是与要比较的内容定的是一个位置,位置不一样比较出来的肯定不一样②定位都正确了,但是还要确定是不是定位的值写的是对的,有时候中文需要用转义字符u、有的空格也需要格外注意下③排除上面的那就是考虑是不是比较出来真的不一样是不是由于研发对于文案、代码的改动引起的

File "C:/Users/linyuchen/.spyder2/auto_Web_UI_Test_Script_2016骞�鏈�6鏃�00055/roomTestgetRoomList.py", line 20

cls.success_url = 'http://qz.fa.163.com/management/room/analyst#choose-room'

^

IndentationError: expected an indented block

这个错误是由于该行的书写缩进错误造成的,缩进解决后页面上不会有!的提示了

return _iterencode(o, 0)

UnicodeDecodeError: 'utf8' codec can't decode byte 0xe5 in position 0: unexpected end of data

这个错误是由于在传值时,如果值是文字,要在双引号前加u,汉字要经过utf-8转码才可用,例如: self.driver.find_element_by_xpath("/div[2]/div/input").send_keys("地方是国峰")要在前面加上u: self.driver.find_element_by_xpath("/div[2]/div/input").send_keys(u"地方是国峰")

NoAlertPresentException: Message: No alert is present

这个错误是由于脚本中加了警告框的处理,但是实际上页面此时没有警告框,解决方法是把这个语句加到警告框出现以后的位置再调用switch_to_alert().accept()函数

总结Selenium自动化测试方法(六)常见的异常错误处理的更多相关文章

  1. 总结Selenium自动化测试方法(一)自动化测试基础

    总结Selenium自动化测试方法 一.自动化测试基础 1.什么样的项目适合自动化测试 ①任务测试明确,不会频繁变动 ②每日构建后的测试验证 ③比较频繁的回归测试 ④软件系统界面稳定.变动少 ⑤需要在 ...

  2. 总结Selenium自动化测试方法(四)WebDriver常用的操作

    四.WebDriver常用的操作 1.控制浏览器操作 #控制浏览器的大小 self.driver.set_window_size(480,800) #控制浏览器返回 self.driver.back( ...

  3. 总结Selenium自动化测试方法(五)自动化测试框架

    五.自动化测试框架 1.单元测试框架unittest class loginTests(unittest.TestCase): ①开始的初始化部分 @classmethod def setUpClas ...

  4. 总结Selenium自动化测试方法(二)测试环境搭建

    (接上期内容) 二.测试环境搭建 1.安装python 现在python3.0比python2.0多了一些改进的功能(详见http://zhidao.baidu.com/link?url=3sT1g7 ...

  5. 总结Selenium自动化测试方法(三)WebDriver定位元素方法

    三.WebDriver定位元素 推荐使用的webdriver是firefox,因为他的firebug更能可以帮助定位页面元素使用 # create a new Firefox session cls. ...

  6. python+selenium自动化软件测试(第2章):WebDriver API

    2.1 操作元素基本方法 前言前面已经把环境搭建好了,从这篇开始,正式学习selenium的webdriver框架.我们平常说的 selenium自动化,其实它并不是类似于QTP之类的有GUI界面的可 ...

  7. Selenium自动化面试题

    (1)selenium的工作原理?        ① 脚本启动driver ② driver去驱动浏览器作为远程服务器 ③ 执行脚本发送请求 ④ 服务器解析请求作出相应操作,并返回给客户端(脚本) ( ...

  8. python selenium自动化点击页面链接测试

    python selenium自动化点击页面链接测试 需求:现在有一个网站的页面,我希望用python自动化的测试点击这个页面上所有的在本窗口跳转,并且是本站内的链接,前往到链接页面之后在通过后退返回 ...

  9. Selenium自动化测试之数据驱动及用例管理

    Selenium自动化测试之数据驱动及用例管理 一.TestNg注解介绍 @Test:表示一个测试方法,在运行测试用例过程中,会自动运行@Test注解的方法. 例:

随机推荐

  1. sql server 数据页缓冲区的内存瓶颈分析

        查看数据库的计数器: SELECT * FROM  sys.dm_os_performance_counters   **也可以使用系统的性能计监测器查看. 右键图表-> 添加计数器. ...

  2. 【基本算法】 KMP文本串模式串的字符串匹配算法

    看了两个晚上的KMP,加上基本的“暴力匹配” 今晚看懂next[j]递归求解时,突然觉得算法真的好美妙,虽然觉悟的晚但晚胜过没有是吧! 我的博客都是应试性的学习笔记,不具备指导性,还是大神们写的好,例 ...

  3. hdu5017 Ellipsoid(旋转)

    比赛的时候跳进这个大坑里,最后代码是写出来了.看到好像很多都是模拟退火做的,下面提供一个奇怪的思路吧. ax^2+by^2+cz^2+dyz+exz+fxy=1(*) 通过一些奇特的YY我们可以知道这 ...

  4. HDU 4588 Count The Carries(找规律,模拟)

    题目 大意: 求二进制的a加到b的进位数. 思路: 列出前几个2进制,找规律模拟. #include <stdio.h> #include <iostream> #includ ...

  5. D&F学数据结构系列——B树(B-树和B+树)介绍

    B树 定义:一棵B树T是具有如下性质的有根树: 1)每个节点X有以下域: a)n[x],当前存储在X节点中的关键字数, b)n[x]个关键字本身,以非降序存放,因此key1[x]<=key2[x ...

  6. 动态调用wcf接口服务

    1.url:http://localhost:8002/名称.svc/basic(.svc结尾) 2.需要引用的命名空间System.ServiceModel 3.调用代码: public class ...

  7. HashMap的key装换成List

    Map<String,Object> map = new HashMap<String,Object>(); map.put("a","32332 ...

  8. js:字符串(string)转json

    第一种方式: 使用js函数eval(); testJson=eval(testJson);是错误的转换方式. 正确的转换方式需要加(): testJson = eval("(" + ...

  9. 快速幂取模 POJ 3761 bubble sort

    题目传送门 /* 题意:求冒泡排序扫描k次能排好序的全排列个数 数学:这里有一个反序列表的概念,bj表示在j左边,但大于j的个数.不多说了,我也是看网上的解题报告. 详细解释:http://blog. ...

  10. lintcode:数字组合III

    数字组合III 组给出两个整数n和k,返回从1......n中选出的k个数的组合. 您在真实的面试中是否遇到过这个题? Yes 样例 例如 n = 4 且 k = 2 返回的解为: [[2,4],[3 ...