selinium从0到1
python的自动化测试框架
独行侠_阿涛
2015年211院校毕业,于2020年考取软考高级证书-系统架构设计师,高分通过(61-64-52)。毕业前6年,一直专注于技术全面开花,有python/Node/Java/Elk系列等项目开发经验;熟悉搜索引擎解决海量数据搜索问题,Node代替Java开发服务后端,python自动化程序编写。目前持续沉淀过去的知识,陆续推出前端0+1专栏,容器技术等专栏,目前正在更新ELK7.2。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
[适合非python新手]selenium自动化测试 25-测试用例运行和报告
目录背景测试用例运行HTMLTestRunner-测试报告生成verbosity添加用例注释,增加报告完整性完整demo代码HTMLTestRunner源码背景上一篇已经讲解了测试用例的编写。这一篇讲解下测试用例如何运行以及如何生成测试报告。测试用例运行测试用例的运行,其实就是把每个方法抽取出来作为普通的函数运行即可。有python底子的同学,都知道这一步怎么做。HTMLTestRunner-测试报告生成既然叫做自动化测试了,那么测试结果肯定要输出,因原创 2021-08-13 09:20:19 · 24569 阅读 · 0 评论 -
[适合非python新手]selenium自动化测试 24-idea编写测试用例
背景上一篇文章介绍了编写测试用例的技巧,但是当调试之后,代码还是使用idea来编写和归档比较好。pycharm通常python使用的是pycharm来编写代码的。使用社区版是免费使用的。测试用例的编写以模块划分,同一模块的功能,放在同一个类里头。如下:编写的是百度模块的测试用例,定义了一个MyCase的类用来装测试用例:from selenium import webdriverimport unittestclass MyCase(unittest.TestCase):原创 2021-08-13 09:20:12 · 444 阅读 · 0 评论 -
[适合非python新手]selenium自动化测试 23-自动化测试用例编写技巧
背景现在已经有很多idea工具,但是其实自动化测试用例的编写不适合直接在idea上直接编写,因为py文件的执行,每次都是从头执行到尾,而我们测试用例的编写,没办法一次性成功,所以一般是一边写一边调试,这种场景,更合适的编写的方式或者说工具,其实是用cmd命令窗口进入python的repl环境,逐行代码的编写和运行加调试。好处1、repl环境是只执行当前行的代码,不会将前面写过的代码重新执行2、repl环境具备类似断点调试的功效3、repl环境编写,不会出现每写一行代码,为了调试而全量执行原创 2021-08-13 09:20:05 · 337 阅读 · 0 评论 -
[适合非python新手]selenium自动化测试 22-关闭浏览器
在前面的例子中我们一直使用quit()方法,其含义为退出相关的驱动程序和关闭所有窗口。除此之外,WebDriver还提供了close()方法,用来关闭当前窗口。例多窗口的处理,在用例执行的过程中打开了多个窗口,我们想要关闭其中的某个窗口,这时就要用到close()方法进行关闭了close() 关闭单个窗口 quit() 关闭所有窗口...原创 2021-08-13 09:19:57 · 591 阅读 · 0 评论 -
[适合非python新手]selenium自动化测试 21-控制浏览器操作
背景前面某篇我们了解了execute_script的使用,但是其实有部分事件,webdriver提供了直接的事件支持。控制浏览器窗口大小有时候我们希望能以某种浏览器尺寸打开,让访问的页面在这种尺寸下运行。例如可以将浏览器设置成移动端大小(480* 800),然后访问移动站点,对其样式进行评估;WebDriver提供了set_window_size()方法来设置浏览器的大小。from selenium import webdriver driver = webdriver.Firefox原创 2021-08-13 09:19:46 · 406 阅读 · 0 评论 -
[适合非python新手]selenium自动化测试 20-多个窗口切换
背景在页面操作过程中有时候点击某个链接会弹出新的窗口,这时就需要主机切换到新打开的窗口上进行操作。WebDriver提供了switch_to.window()方法,可以实现在不同的窗口之间切换。switch_to.window()from selenium import webdriverimport time driver = webdriver.Firefox()driver.implicitly_wait(10)driver.get("http://www.baidu.com"原创 2021-08-12 17:28:15 · 354 阅读 · 0 评论 -
[适合非python新手]selenium自动化测试 19-frame/iframe表单切换
背景在Web应用中经常会遇到frame/iframe表单嵌套页面的应用,WebDriver只能在一个页面上对元素识别与定位,对于frame/iframe表单内嵌页面上的元素无法直接定位。这时就需要通过switch_to.frame()方法将当前定位的主体切换为frame/iframe表单的内嵌页面中。如下页面:iframe里头的元素是定位不到的,想要操作登录框必须要先切换到iframe表单。<html> <body> ... <iframe i原创 2021-08-12 17:26:05 · 355 阅读 · 0 评论 -
[适合非python新手]selenium自动化测试 18-窗口截图
背景自动化用例是由程序去执行的,因此有时候打印的错误信息并不十分明确。如果在脚本执行出错的时候能对当前窗口截图保存,那么通过图片就可以非常直观地看出出错的原因,当然前提是有弹窗提示,或者页面有显示错误信息。WebDriver提供了截图函数get_screenshot_as_file()来截取当前窗口。get_screenshot_as_filefrom selenium import webdriverfrom time import sleep driver = webdriver.F原创 2021-08-12 17:23:21 · 444 阅读 · 0 评论 -
[适合非python新手]selenium自动化测试 17-警告框处理
在WebDriver中处理JavaScript所生成的alert、confirm以及prompt十分简单,具体做法是使用 switch_to.alert 方法定位到 alert/confirm/prompt,然后使用text/accept/dismiss/ send_keys等方法进行操作。text:返回 alert/confirm/prompt 中的文字信息。 accept():接受现有警告框。 dismiss():解散现有警告框。 send_keys(keysToSend):发送文本至原创 2021-08-12 17:22:25 · 315 阅读 · 0 评论 -
[适合非python新手]selenium自动化测试 16-调用JavaScript代码
背景自动化测试过程,有很多动作是没有页面元素支持的,比如滚动条滚到底部或者滚动到顶部。因此WebDriver提供了execute_script()方法来执行JavaScript代码。execute_script用于调整浏览器滚动条位置的JavaScript代码如下:<!-- window.scrollTo(左边距,上边距); -->window.scrollTo(0,450);window.scrollTo()方法用于设置浏览器窗口滚动条的水平和垂直位置。方法的第一个参数原创 2021-08-12 17:21:24 · 315 阅读 · 0 评论 -
[适合非python新手]selenium自动化测试 15-cookie操作
背景早期的系统,还是有很多系统都是在用cookie,现在也仍然有不少系统基于cookie开发的。所以对cookie的操作还是很常见的。有时候我们需要验证浏览器中cookie是否正确,因为基于真实cookie的测试是无法通过白盒和集成测试进行的。WebDriver提供了操作Cookie的相关方法,可以读取、添加和删除cookie信息。操作cookie的方法WebDriver操作cookie的方法:get_cookies(): 获得所有cookie信息。 get_cookie(name):原创 2021-08-12 17:20:07 · 373 阅读 · 0 评论 -
[适合非python新手]selenium自动化测试 14-文件上传
背景对于通过input标签实现的上传功能,可以将其看作是一个输入框,即通过send_keys()指定本地文件路径的方式实现文件上传。创建测试html创建upload.html<html><head><meta http-equiv="content-type" content="text/html;charset=utf-8" /><title>upload_file</title><link href="http:原创 2021-08-12 17:17:11 · 299 阅读 · 0 评论 -
[适合非python新手]selenium自动化测试 13-下拉框选择
背景有时我们会碰到下拉框,WebDriver提供了Select类来处理下拉框。 如百度搜索设置的下拉框,如下图:这个时候,如果想要选择某个下拉框选项,可以使用Select类,Select类路径:selenium.webdriver.support.select.SelectSelect类用于定位select标签。select_by_value() 方法用于定位下接选项中的value值。eg:from selenium import webdri...原创 2021-08-12 17:15:40 · 426 阅读 · 0 评论 -
[适合非python新手]selenium自动化测试 12-By类
背景上一篇讲解了元素等待,其中有使用预期条件支持,有涉及到By字眼,这个是啥呢。这篇文章就来分享这个。用By类定位指定定位的属性,许多属性都可以用来定位元素,更多的定位属性可以参考前面的元素定位。类路径:class selenium.webdriver.common.by.By支持的定位策略包括:CLASS_NAME = 'class name' CSS_SELECTOR = 'css selector' ID = 'id' LINK_TEXT = 'link t原创 2021-08-12 17:13:38 · 393 阅读 · 0 评论 -
[适合非python新手]selenium自动化测试 11-元素等待事件
背景前面讲解了元素的获取以及常见的事件操作。但是遇到一个问题,那就是页面加载的时候,部分元素可能还没有加载出来,这个时候,如果直接去获取元素,就会出现空对象异常。因此,需要等待元素出来之后再去执行下一步。现在很多Web应用都在使用AJAX技术。浏览器载入一个页面时,页面内的元素可能是在不同的时间载入的,这会加大定位元素的困难程度,因为元素不在DOM里,会抛出ElementNotVisibleException异常,使用waits,我们就可以解决这个问题。Waiting给(页面)动作的执行提供了一些时原创 2021-08-12 17:12:39 · 506 阅读 · 0 评论 -
[适合非python新手]selenium自动化测试 9-定位多个元素(1类)
目录背景定位一组元素使用案例背景上一篇文章讲解了元素的操作,上上篇讲解了元素的定位(只定位满足条件的第一个元素),但是其实元素通常定位的时候,如果不是以xpath或者id来进行定位的话其实都会有多个的,所以这篇分享如何定位一组元素。定位一组元素WebDriver还提供了8种用于定位一组元素的方法。find_elements_by_id()find_elements_by_name()find_elements_by_class_name()find_elements_原创 2021-07-28 08:58:41 · 694 阅读 · 1 评论 -
[适合非python新手]selenium自动化测试 10-鼠标事件、键盘事件
背景前面几篇文章,我们已经学会了怎么去获取一个或者一组元素,所以这篇文章,我们讲解下常规的事件的使用。ActionChains在 WebDriver 中, 将这些关于鼠标操作的方法封装在 ActionChains 类提供。类路径:selenium.webdriver.common.action_chains.ActionChains(driver)可以看出带参数driver,因此使用的时候需要将dr作为参数传进去ActionChains可以完成简单的交互行为,例如鼠标移动...原创 2021-07-28 08:58:54 · 500 阅读 · 0 评论 -
[适合非python新手]selenium自动化测试 8-元素操作
目录背景常用操作例如1例如2例如3背景前两篇文章已经完成了怎么获取元素。这一节课,针对获取到的元素做测试操作。强调动作.常用操作或单击(按钮) 或输入(输入框)clear(): 清除文本。 send_keys (value): 模拟按键输入。 click(): 单击元素。 text: 获取元素文本(纯文本) title: 获取当前网页的title标签内容(通过dr) current_url: 获取当前网页url(通过dr) current..原创 2021-07-28 08:58:36 · 306 阅读 · 0 评论 -
[适合非python新手]selenium自动化测试 7-元素定位之xpath详解
目录背景XPath定位一个斜杆和两个斜杆背景上一章节已经完成了元素的基本定位方式解释。遗留一个xpath还没详细解释。本篇文章专门解释这块内容XPath定位XPath是用来定位XML文档节点的语言。不过HTML可以看成是XML(XHTML)的一种实现。Selenium用户可以使用这个强力的语言来瞄准Web应用的元素。 XPath延伸了用id或者name属性来定位的单一方法,开创了许多可能性,例如定位页面的第三个复选框用XPath的主要理由之一,就是你想定位的元素没有合.原创 2021-07-28 08:58:29 · 607 阅读 · 0 评论 -
[适合非python新手]selenium自动化测试 6-元素定位
目录背景元素定位定位使用背景上一篇已经完成了一个最简单的自动化测试demo的运行。但是自动化测试的功能肯定远不止于此。这篇文章分享,如何去获取页面上的元素,为更复杂的自动化测试操作做准备。元素定位Selenium提供了8种定位方式。idnameclass nametag namelink textpartial link textxpathcss selector这8种定位方式在Python selenium中所对应的方法为:find_element原创 2021-07-27 21:46:17 · 350 阅读 · 0 评论 -
[适合非python新手]selenium自动化测试 5-浏览器驱动使用
目录背景浏览器驱动使用背景上一篇文章,讲解了如何安装谷歌浏览器插件,其实就是浏览器驱动。这篇文章分享怎么使用浏览器驱动。其实在简单demo里头,已经写了代码,只是大家不知道是啥意思而已。浏览器驱动使用from selenium import webdriver表示引入selenium包的webdriver对象,就是引如web驱动对象driver = webdriver.Chrome()这句话的意思就是获取谷歌浏览器的驱动,其实就是我们上一篇文章里头安装的chrom原创 2021-07-27 21:42:42 · 799 阅读 · 0 评论 -
[适合非python新手]selenium自动化测试 4-浏览器插件
目录背景chromedriver.exe安装1、 下载插件2、复制文件3、配置驱动的环境变量重新运行背景看到这一篇,说明大家已经看了上一篇的文章了。也遇到了上一篇文章文末列举的问题了。这一篇教大家如何按需安装特定的某个浏览器的插件以适应自动化测试需要。chromedriver.exe安装这篇文章以给chrome安装自动化测试插件为例子,分享安装过程。chrome浏览器需要chromedriver插件1、 下载插件下载地址:https://np原创 2021-07-27 21:40:21 · 981 阅读 · 0 评论 -
[适合非python新手]selenium自动化测试 3-selenium最简单demo
目录背景沙箱安装seleniumdemo编写运行并查看效果背景上一篇已经教大家怎么创建一个python项目了。这一篇分享如何写selenium的hello world。沙箱安装selenium第一篇,我们装了一个selenium,那个是全局的,但是现在我们使用沙箱,所以需要再局部再次安装selenium。如下:(venv) O:\python\selenium-test>pip install seleniumLooking in indexes: ht原创 2021-07-27 21:37:14 · 520 阅读 · 0 评论 -
[适合非python新手]selenium自动化测试 2-项目创建
背景上一篇文章已经介绍了selenium的依赖的环境的搭建。这篇文章主要是介绍如何创建一个selenium的项目。项目创建1、 打开pycharm,以沙箱的模式创建一个项目,这样可以避免项目的依赖文件不会污染全局的依赖,如下。2、然后其他的按照默认配置创建项目即可。...原创 2021-07-26 08:44:23 · 362 阅读 · 0 评论 -
[适合非python新手]selenium自动化测试 1-环境安装
目录背景python-环境pip配置配置方法1:永久配置(豆瓣镜像源)配置方法2:临时生效(豆瓣镜像源)selenium安装pycharm安装背景自动化测试的概念其实在多年前就已经出现了。怎奈何,一直没时间进行系统的学习和总结,称着这次学习的机会,分享下基于python-selenium的自动化测试从0到1。注意:系列教程仅适合有python功底的同学,否则部分内容可能很陌生python-环境不过学习什么,第一课都是安装环境,selenium学习也是如此。原创 2021-07-26 08:44:16 · 449 阅读 · 0 评论
分享