六、常见的异常错误处理

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. 【BZOJ】【1202】【HNOI2005】狡猾的商人

    Orz iwtwiioi  http://www.cnblogs.com/iwtwiioi/p/3887617.html 并查集+前缀和 啊……这题应该是水题吧?但是我这个大沙茶居然一天都没想出来…… ...

  2. c++ 继承和组合的区别

    .什么是继承 A继承B,说明A是B的一种,并且B的所有行为对A都有意义 eg:A=WOMAN B=HUMAN A=鸵鸟 B=鸟 (不行),因为鸟会飞,但是鸵鸟不会. .什么是组合 若在逻辑上A是B的“ ...

  3. IE 选择文字后 显示小箭头 加速按钮

    IE - 工具 - Internet选项 - 高级 - 不选择<在选择是显示加速按钮>选项就可以了.

  4. 在线编辑器 (UBB, FCK)

    这里主要说明一下:UBB UBB 使用类型HTML的语法.  UBB相对FCK的HTML方式, 安全性高. 用户不可以直接嵌入HTML代码.   UBB 在线编辑器(JS版): http://www. ...

  5. 十个实用但IE不支持的CSS属性

    对IE浏览器尤其是IE6的抱怨基本已进入麻痹状态,偶尔甚至产生非常消极的想法:这个世界只有一个浏览器就好了,哪怕这唯一的浏览器就是IE6.当然,这样的想法是非常病态的,马上打消.本文里面,介绍了10个 ...

  6. Using the viewport meta tag to control layout on mobile browsers

    A typical mobile-optimized site contains something like the following: <meta name="viewport& ...

  7. HYSBZ2038 小Z的袜子(莫队算法)

    今天学了一下传说中的解决离线询问不修改的一种算法.题目的意思非常简单,就是询问在一个[L,R]区间里的取两个物品,然后这两个物品颜色相同的概率.其实就是对于每种颜色i,这个区间里对应的个数cnt[i] ...

  8. (转)Android之ListView原理学习与优化总结

    转自: http://jishu.zol.com.cn/12893.html 在整理前几篇文章的时候有朋友提出写一下ListView的性能优化方面的东西,这个问题也是小马在面试过程中被别人问到的….. ...

  9. Java集合框架(三)

     Map Map集合:该集合存储键值对,一对一对的往里存,而且要保证键的唯一性. Map |------HashTable:底层是哈希表数据结构,不可以存入null键null值.该集合是线程同步的.J ...

  10. 使用secureCRT远程Linux,出现远程主机拒绝连接

    1.查看是否开启远程连接, 控制面板->程序和功能->打开或关闭windows功能->勾选telnet服务器和telnet客户端2.cmd命令行输入telnet ip地址 端口号(比 ...