有需求就会去研究解决的路子。

  现在需求就是,测试报告报错信息一堆,但却无法肉眼看出是什么问题,你只能知道定位不到元素或是超时,但你却不知道其实进入页面就报错了或是提交表单就报错了!也就是看到报错,需要进一步去手工实际操作看看到底为啥定位不到元素或是为啥超时了。

  这就是平常比较抓头的测试报告图。

  最近我就想写个方法,判断页面报错,显示在测试报告里,减少手工的检验,其实也很简单。

# 测试进入页面是否报错
def httpcode(self, link): self.driver.switch_to.parent_frame()
self.driver.switch_to.frame("fraLeftFrame") # 拼接当前访问的url
# href = self.driver.find_element_by_link_text(link).get_attribute('href')
href = self.driver.find_element_by_xpath("//a[text()='%s']" % link).get_attribute('href')
href = re.findall("(\/.*)\"\)", href)
ipport = re.findall("(http://.*)\/", self.driver.current_url)
url = ipport[0] + href[0] cookies = {"JSESSIONID": self.driver.get_cookies()[0]['value'], "jforumSSOCookieNameUser": "xxxx"} res = requests.get(url, cookies=cookies, stream=True) # 判断是否响应200
if res.status_code != 200: print("********** http请求错误,页面报错 **********\n"
"(访问", url, "页面报错", res.status_code, ")\n")
raise urllib.error.HTTPError()
else:
print("********** http请求响应200 **********") self.driver.switch_to.parent_frame()
self.driver.switch_to.frame("fraRightFrame")

  无视方法里前后的进入frame哈,由于页面需要登录,所以我需要获取当前cookie加入到request里,这个根据你自己的系统实际需求设计。

  其实主要的思路就是,访问页面时,用request请求对应页面(因为无直接链接,所以上面的代码是拼接出页面的链接),根据响应是否为200来判断页面是否报错,如果非200,那就抛出异常

  而调用时,则是放在显示等待前面,这样页面报错,就不用去跑30秒等待着元素了,报错反而更快的退出进入下一条用例。

  上面是页面访问报错的问题处理,而下面我又写了个,提交表单报错的处理,更简单。

  仅提供思路,不一定适用所有系统。

  因为目标系统提交报错跳转的报错页面,都是同个页面,那么就可以通过定位报错页面里面的某个元素来判断,如果发现元素存在则抛出异常,不存在则继续。

   虽说上面两种方法,不能将所有报错可能都判断出来,但也至少判断了7成,大大的减少人工检验。

现在的报告是这样:

如有错误,请及时指正,谢谢!

最新文章

  1. Hide SSH Welcome Banner/Message on Ubuntu14.04+
  2. python + hadoop (案例)
  3. Oracle中是用case...when语句进行判断
  4. ha_innobase::general_fetch
  5. MySQL追加注释或者大量修改注释
  6. How to uninstall (remove) JAVA from OS X Lion
  7. SE 2014年4月22日(二)
  8. Qt在表格中加入控件
  9. swift3.0 对UITextField()输入框输入的内容进行监控
  10. 利用 :before :after伪类实现鼠标悬浮动画效果
  11. Sql语句中IN和exists的区别及应用
  12. 《剑指offer》内容总结
  13. JBoss/WildFly 初步安装配置教程
  14. MVC3学习:Sql Server2005中时间类型DateTime的显示
  15. shell脚本重启tomcat
  16. MessageFormat格式化数字
  17. drupal的权限设置
  18. JS之RegExp对象(一)
  19. centos7安装nodejs 和 yarn
  20. halcon保存带有region的图片算子

热门文章

  1. git pull和fetch的区别
  2. SQL Server 2008收缩日志文件--dbcc shrinkfile参数说明
  3. Java虚拟机性能监控与调优实战
  4. RocketMQ配置
  5. MFC中的模态对话框与非模态对话框,模态对话框测试
  6. Win7 访问 数据库 慢
  7. Python基础,day1
  8. hgoi#20190519
  9. 5个现在就该使用的数组Array方法: indexOf/filter/forEach/map/reduce详解(转)
  10. Hive学习之路(一)—— Hive 简介及核心概念