py+selenium 自动判断页面是否报错并显示在自动化测试报告【原创】
2024-09-01 00:40:34
有需求就会去研究解决的路子。
现在需求就是,测试报告报错信息一堆,但却无法肉眼看出是什么问题,你只能知道定位不到元素或是超时,但你却不知道其实进入页面就报错了或是提交表单就报错了!也就是看到报错,需要进一步去手工实际操作看看到底为啥定位不到元素或是为啥超时了。
这就是平常比较抓头的测试报告图。
最近我就想写个方法,判断页面报错,显示在测试报告里,减少手工的检验,其实也很简单。
# 测试进入页面是否报错
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成,大大的减少人工检验。
现在的报告是这样:
如有错误,请及时指正,谢谢!
最新文章
- Hide SSH Welcome Banner/Message on Ubuntu14.04+
- python + hadoop (案例)
- Oracle中是用case...when语句进行判断
- ha_innobase::general_fetch
- MySQL追加注释或者大量修改注释
- How to uninstall (remove) JAVA from OS X Lion
- SE 2014年4月22日(二)
- Qt在表格中加入控件
- swift3.0 对UITextField()输入框输入的内容进行监控
- 利用 :before :after伪类实现鼠标悬浮动画效果
- Sql语句中IN和exists的区别及应用
- 《剑指offer》内容总结
- JBoss/WildFly 初步安装配置教程
- MVC3学习:Sql Server2005中时间类型DateTime的显示
- shell脚本重启tomcat
- MessageFormat格式化数字
- drupal的权限设置
- JS之RegExp对象(一)
- centos7安装nodejs 和 yarn
- halcon保存带有region的图片算子