今天给大家讲解的是自动化测试示例的解析,如有不对的地方请多多指教。

自动化测试示例如下:

from selenium import webdriver

  from selenium.webdriver.common.keys import Keys

  driver = webdriver.Chrome()

  driver.get("https://pypi.org/")

  print(driver.title)

  assert 'Python' in driver.title

  elem = driver.find_element_by_name('q')

  elem.clear()

  elem.send_keys('deniro')

  elem.send_keys(Keys.RETURN)

  assert 'No results found.' not in driver.page_source

  driver.close()

解析如下:

(1)、首先导入 webdriver 与 Keys 模块。selenium.webdriver 模块包含驱动浏览器的实现方法。 支持Firefox、Chrome、IE 浏览器。 Keys 模块包含键盘中的键,诸如F1,ALT 等。

from selenium import webdriver

from selenium.webdriver.common.keys import Keys

(2)、接下来,创建 Chrome WebDriver 实例。

driver = webdriver.Chrome()

  driver.get 方法会在浏览器中打开指定的 URL 页面。 当页面完全加载后(会触发 “onload” 事件),才会把控制权交给我们写的测试脚本。

  注意: 如果如果加载的页面,使用了很多 AJAX 请求,那么 WebDriver 可能不知道完全加载的时间点。

(3)、然后是一个断言,测试网页标题(即 H5 中的“Python” 字符串:

assert 'Python' in driver.title

(4)、 WebDriver 提供了多种查找元素的方法,形如 使用 find_element_by_*。  例如,这里使用了 find_element_by_name 方法通过其标签的 name 属性,来查找输入框元素 。

elem = driver.find_element_by_name('q')

(5) 、然后,我们模拟键盘操作,在输入框中输入字符。 那些特殊字符可以使用 selenium.webdriver.common.keys 来输入,比如示例中的回车符。  有些输入框有设置默认值,所以我们首先清除输入框中的默认值,以避免影响预期结果:

elem.clear()

  elem.send_keys('deniro')

  elem.send_keys(Keys.RETURN)

如果对软件测试、接口测试、自动化测试、面试经验交流。感兴趣可以加软件测试交流:1085991341,还会有同行一起技术交流。

(6)、回车后,浏览器就会调用后端服务,执行搜索操作,最后返回搜索结果。我们可以在返回的页面源代码中,测试我们所希望或不希望看到的字符:

assert 'No results found.' not in driver.page_source

(7)、最后关闭浏览器 。  也可以调用 quit 方法实现类似功能,但它们之间有一些区别。 quit 方法会退出整个浏览器,而 close 方法只会关闭浏览器中的一个选项卡,如果仅打开一个选项卡,那么大多数现代浏览器也会整个关闭 。

driver.close()

以上,希望对你有帮助,有被帮助到的朋友欢迎点赞,评论。

阿里大牛教你基于Python的 Selenium自动化测试示例解析的更多相关文章

  1. 《Selenium自动化测试实战:基于Python》Selenium自动化测试框架入门

    第1章  Selenium自动化测试框架入门 1.1  Selenium自动化测试框架概述 说到目前流行的自动化测试工具,相信只要做过软件测试相关工作,就一定听说过Selenium. 图1-1是某企业 ...

  2. 基于python的selenium自动化测试环境搭建

    Windows下的环境搭建: 1.安装python2.7.152.cmd里敲pip install selenium3.安装firefox47.geckodriver11(并将geckodriver. ...

  3. 基于python的selenium自动化测试环境安装

    1. Python2安装 官方网站:https://www.python.org/downloads/ (python3或新版本已经默认集成了pip包和path,安装的时候打勾就行,可以直接跳过下面第 ...

  4. 基于Python的selenuim自动化测试尝试

    工作这么多年了,终于狠下心好好开始学学自动化测试相关知识,揭开这层神秘的面纱. 困难重重,障碍很多,但好在每天都多少有点小收获. 很感谢一个QQ好友推荐的虫师,也非常感谢在这个契机读到了虫师编著的&l ...

  5. 基于python的Selenium使用小结

    之前介绍过基于Unittest和TestNG自动化测试框架,然而基于Web端的测试的基础框架是需要Selenium做主要支撑的,这里边给大家介绍下Web测试核心之基于Python的Selenium 一 ...

  6. Selenium基于Python 进行 web 自动化测试

    配置使用环境 下载相应的浏览器驱动, Firefox 是默认的 本文以 chrome 为主 ,放在scripts目录下ChromeDriver 官方下载地址 : 所有版本的 ChromeDriver ...

  7. 基于python的selenium常用操作方法(2)

    9 多表单切换 在Web应用中经常会遇到frame/iframe表单嵌套页面的应用,WebDriver只能在一个页面上对元素识别与定位,对于frame/iframe表单内嵌页面上的元素无法直接定位.这 ...

  8. 基于python的selenium常用操作方法(1)

    1 selenium定位方法    Selenium提供了8种定位方式. ·         id ·         name ·         class name ·         tag ...

  9. 基于python的selenium两种文件上传操作

    方法一.input标签上传     如果是input标签,可以直接输入路径,那么可以直接调用send_keys输入路径,这里不做过多赘述,前文有相关操作方法. 方法二.非input标签上传 这种上传方 ...

随机推荐

  1. PHP utf8_decode() 函数

    定义和用法 utf8_decode() 函数把 UTF-8 字符串解码为 ISO-8859-1.高佣联盟 www.cgewang.com 该函数把通过 utf8_encode() 函数编码的 ISO- ...

  2. Skill 返回一个数字list的大小排序信息

    https://www.cnblogs.com/yeungchie/ code procedure(ycSortList(numlist) prog((size sort) foreach(main ...

  3. luogu P3412 仓鼠找sugar II 期望 树形dp

    LINK:仓鼠找sugar II 以前做过类似的期望题目 加上最后的树形dp不算太难 还是可以推出来的. 容易发现 当固定起点和终点的时候 可以先固定根 这样就不用分到底是正着走还是倒着走了. 1为根 ...

  4. three.js 着色器材质之glsl内置函数

    郭先生发现在开始学习three.js着色器材质时,我们经常会无从下手,辛苦写下的着色器,也会因莫名的报错而手足无措.原因是着色器材质它涉及到另一种语言–GLSL,只有懂了这个语言,我们才能更好的写出着 ...

  5. Linux常用命令之文件查找which、find、locate命令讲解

    在之前的课程中,我们介绍了Linux系统的常用文件处理命令和权限管理命令,今天我们继续来学习Linux操作系统的其他处理命令. 1.文件搜索命令 which 命令解释 命令名称:which 命令所在路 ...

  6. Springboot2.x整合logback slf4j

    Springboot项目的pom里引入的parent <parent> <groupId>org.springframework.boot</groupId> &l ...

  7. vue 项目运行报错

    'vue-cli-service' 不是内部或外部命令,也不是可运行的程序 或批处理文件. 运行Vue项目文件的时候报如下错误 需要先用淘宝镜像来运行:cnpm install 然后运行成功后 就可以 ...

  8. 15、Facade 外观模式

    什么是Facade模式 随着系统越来越复杂,我们需要把细节隐藏起来,给客户端提供一个统一的接口.在这种需求下facade模式诞生了.该模式比较简单,我们只需要在系统变得复杂把它运用上来,这样底层跟客户 ...

  9. MacOS下如何优雅的使用冰蝎

    因为冰蝎也是使用 JAVA 写的跨平台应用程序,我们可以借助 macOS 自带的 自动操作 automator.app 来创建一个应用程序. 前言: 冰蝎是一种新型的Webshell连接工具,在日常的 ...

  10. XCTF-WEB-高手进阶区-Web_python_template_injection-笔记

    Web_python_template_injection o(╥﹏╥)o从这里开始题目就变得有点诡谲了 网上搜索相关教程的确是一知半解,大概参考了如下和最后的WP: http://shaobaoba ...