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

自动化测试示例如下:

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 preg_split() 函数

    preg_replace 函数通过一个正则表达式分隔字符串.高佣联盟 www.cgewang.com 语法 array preg_split ( string $pattern , string $s ...

  2. PHP xml_parse_into_struct() 函数

    定义和用法 xml_parse_into_struct() 函数把 XML 数据解析到数组中. 该函数把 XML 数据解析到 2 个数组中:高佣联盟 www.cgewang.com Value 数组 ...

  3. Calibre LVS BOX 详细用法

    https://www.cnblogs.com/yeungchie/ LVS BOX的使用对于后端的团队协作起到非常便利的作用. 通过在lvs rules file添加BOX的相关语句可以达到这个目的 ...

  4. Linux之iptables原理详解

    目录: 一.netfilter与iptables 二.filter.nat.mangle等规则表 三.INPUT.FORWARD等规则链和规则 四.Linux数据包路由原理 五.iptables编写规 ...

  5. MySQL的utf8问题

    作者:brightwang 原文:https://www.jianshu.com/p/ab9aa8d4df7d 有时候用MySQL存储一些特殊字符时,有出现乱码问题. 我用的是UTF-8编码的客户端, ...

  6. 原来写个Vue 首页就这么简单

    全栈的自我修养: 为我们的项目添加首页 You can never replace anyone. What is lost is lost. 每个人都是无可替代的,失去了便是失去了. 前言 上篇文章 ...

  7. CSS-flex|gird 布局

    网页布局.css *{ box-sizing: border-box; } /* flex弹性布局 */ #flex-container { display: flex; flex-direction ...

  8. Requests接口测试库-官网快速上手

    Requests 一个发送HTTP请求的库基于urllib3,相比自带的库,提供了更高效简洁的可用方法,测试从业者用来做接口测试的一个好工具 文章内容均来自官网:https://requests.re ...

  9. 分布式任务调度平台 → XXL-JOB 实战

    开心一刻 老师:谁知道鞭炮用英语怎么说? 甲:老师!老师!我知道,鞭炮的英文是pilipala. 老师:那闪电呢? 乙:kucha kucha 老师:那舞狮呢? 丙:dong dong qiang 老 ...

  10. 推荐:实现RTSP/RTMP/HLS/HTTP协议的轻量级流媒体框架,支持大并发连接请求

    推荐一个比较好用的流媒体服务开源代码: ZLMediaKit: 实现RTSP/RTMP/HLS/HTTP协议的轻量级流媒体框架,支持大并发连接请求 https://gitee.com/xiahcu/Z ...