1. get_screenshot_as_file()提供一个截屏功能。在自动化执行过程中,执行失败后只能看到代码的运行错误,而不能直接看到ui上的错误,利用截屏保存下来很容易的进行问题的判断
  2.  
  3. 先来执行一个通过的用例:
  1. from selenium import webdriver
  2. import time
  3. import os
  4.  
  5. def test_search_baidu():
  6. driver = webdriver.Chrome()
  7. driver.implicitly_wait(5) # 隐性等待5秒
  8. driver.get('http://www.baidu.com')
  9.  
  10. word = '韩国 v 发觉你狗日价格每公斤'
  11. driver.find_element_by_id('kw').send_keys(word) # 搜索框中输入word
  12. driver.find_element_by_id('su').click() # 点击搜索
  13. time.sleep(1)
  14.  
  15. # 判断,如果word在请求的页面中则通过,不在则截屏
  16. img_path = os.getcwd() # 保存截图的路径
  17. if word in driver.page_source:
  18. print('testcase is pass!')
  19. else:
  20. driver.get_screenshot_as_file(img_path+"fail_img.png")
  21.  
  22. # 关闭浏览器
  23. driver.quit()
  24.  
  25. # 运行程序
  26. if __name__ == '__main__':
  27. test_search_baidu()
  28. # 结果:testcase is pass!

改下代码,让用例执行成功后截图,失败后打印测试失败:

  1. from selenium import webdriver
  2. import time
  3. import os
  4.  
  5. def test_search_baidu():
  6. driver = webdriver.Chrome()
  7. driver.implicitly_wait(5) # 隐性等待5秒
  8. driver.get('http://www.baidu.com')
  9.  
  10. word = '韩国 v 发觉你狗日价格每公斤'
  11. driver.find_element_by_id('kw').send_keys(word) # 搜索框中输入word
  12. driver.find_element_by_id('su').click() # 点击搜索
  13. time.sleep(1)
  14.  
  15. # 判断,如果word在请求的页面中通过则截图
  16. img_path = os.getcwd() # 保存截图的路径
  17. print(img_path)
  18. if word in driver.page_source:
  19. driver.get_screenshot_as_file(img_path + "sucess_img.png")
  20. else:
  21. print('testcase is fail!')
  22.  
  23. # 关闭浏览器
  24. driver.quit()
  25.  
  26. # 运行程序
  27. if __name__ == '__main__':
  28. test_search_baidu()

截图如下:

selenium提供的截图功能的更多相关文章

  1. Selenium webdriver实现截图功能

    可参考http://www.cnblogs.com/tobecrazy/p/3599568.html Webdriver截图时,需要引入: import java.io.File; import ja ...

  2. Selenium Webdriver——实现截图功能

    截图方法 public static void snapshot(TakesScreenshot drivername, String filename) { // this method will ...

  3. 封装selenium自动化框架中的截图功能

    对selenium自带的截图功能进行封装: 以下为封装的代码,自定义一个.py文件即可,图片路径自己设置一个. #coding:utf-8 class Screen(object): ''' 封装的截 ...

  4. selenium截图功能

    selenium自动化测试完后需要查看值观的结果,或者查操作过程中是否正确,此时需要使用自带的截图功能. 示例1: from time import sleep from selenium impor ...

  5. selenium web driver 实现截图功能

    在验证某些关键步骤时,需要截个图来记录一下当时的情况 Webdriver截图时,需要引入 import java.io.File; import java.io.IOException; import ...

  6. Python+Selenium学习--异常截图

    前言 Webdriver 提供错误截图函数get_screenshot_as_file(),可以帮助我们跟踪bug,在脚本无法继续执行时候, get_screenshot_as_file()函数将截取 ...

  7. 记一次"截图"功能的项目调研过程!

    目录 项目需求 功能调研 AWT Swing Html2Image PhantomJS Headless Chrome 实现方案 结论 项目需求 最近,项目接到了一个新需求,要求对指定URL进行后端模 ...

  8. Selenium2学习-023-WebUI自动化实战实例-021-获取浏览器显示区域大小,通过 WebDriver 截图功能

    之前的博文 020-JavaScript 在 Selenium 自动化中的应用实例之二(获取浏览器显示区域大小) 简述了通过 JavaScript 获取浏览器显示区域大小,此文将简述另一种获取浏览器显 ...

  9. Unity项目接入应用宝SDK实现截图功能

    Unity项目接入应用宝SDK实现截图功能 问题由来 点击应用宝悬浮窗 如图所示 左下角有一个截图按钮 需要解决那些问题 截图信息需要由游戏引擎提供 SDK获取截图信息为同步 但是Unity引擎没有提 ...

随机推荐

  1. Android studio导入工程很卡及下载网络jar很慢问题总结

    AndroidStudio导入项目一直卡在Building gradle project info,实际上是因为你导入的这个项目使用的gradle与你已经拥有的gradle版本不一致,导致需要下载该项 ...

  2. jdk8中tomcat修改配置PermSize为MetaspaceSize

    JDK8中用metaspace代替permsize,因此在许多我们设置permsize大小的地方同样需要修改配置为metaspace 将-XX:PermSize=200m;-XX:MaxPermSiz ...

  3. Redis服务信息

    想要获得下面的redis服务器信息,只需要在命令行中输入:info server 部分记录了 Redis 服务器的信息,它包含以下域: redis_version : Redis 服务器版本 redi ...

  4. 坚持自己的追求,迎来 “中国系统开发网” (CSDN)的专访

    坚持自己的追求,迎来 "中国系统开发网" (CSDN)的专访: 专访马根峰:海量数据处理与分析大师的中国本土程序员" http://www.csdn.net/articl ...

  5. [ Java学习基础 ] Java的对象容器 -- 集合

    当你有很多书时,你会考虑买一个书柜,将你的书分门别类摆放进入.使用了书柜不仅仅使房间变得整洁,也便于以后使用书时方便查找.在计算机中管理对象亦是如此,当获得多个对象后,也需要一个容器将它们管理起来,这 ...

  6. Python可视化TVTK库初使用

    本周学习了初步的TVTK库的安装及使用方法,第一次通过tvtk.CubeSource方法建立了一个长方体对象.对TVTK的接触有了新的体会. 首先,在网上下载了以下五个库并按顺序通过pip指令在cmd ...

  7. java向上转型和向下转型1

    在java继承体系中,认为父类(超类)在上层,子类在下层(派生类) ,向上转型就是把子类对象转成父类对象. public class Father { public void eat(){ Syste ...

  8. IT轮子系列(一)——DropDownList 的绑定,你秒懂了吗

    前言 最近猛然惊觉(说是猛然,是因为自己工作那么多年,居然不自知.不反省),在开发中,自己碰到一些常用的功能代码块,还是习惯性的baidu,然后copy....这样的操作,不知自己重复了多少遍.现在回 ...

  9. 掌握 Java 泛型类型(一)

    为理解泛型类型为何如此有用,我们要将注意力转向 Java 语言中最容易引发错误的因素之一 - 需要不断地将表达式向下类型转换(downcast)为比其静态类型更为具体的数据类型(请参阅参考资料中的&q ...

  10. java 垃圾回收总结(1)

    java 垃圾回收总结(1)   以前看过很多次关于垃圾回收相关的文章,都只是看过就忘记了,没有好好的整理一下,发现写文章可以强化自己的记忆. java与C,c++有很大的不同就是java语言开发者不 ...