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

自动化测试示例如下:

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. PDOStatement::fetch

    PDOStatement::fetch — 从结果集中获取下一行(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0) 说明 语法 mixed PDOStatement:: ...

  2. luogu P5470 [NOI2019]序列 dp 贪心 费用流 模拟费用流

    LINK:序列 考虑前20分 容易想到爆搜. 考虑dp 容易设\(f_{i,j,k,l}\)表示前i个位置 选了j对 且此时A选择了k个 B选择了l个的最大值.期望得分28. code //#incl ...

  3. luogu P4852 yyf hates choukapai 单调队列优化dp

    LINK:yyf hates choukapai 由于赶时间 要做的题有点小多.. 所以简略概述一下. 容易想到一个暴力dp \(f_{i,j,k}\)表示到了第i张牌此时连抽j次已经单抽k次的最大值 ...

  4. 网络通信-RESTful API 设计指南

    http://www.ruanyifeng.com/blog/2014/05/restful_api.html 作者: 阮一峰 日期: 2014年5月22日 网络应用程序,分为前端和后端两个部分.当前 ...

  5. 面试题:JVM 堆内存溢出后,其他线程是否可继续工作?

    来源:http://sina.lt/gqaM 最近网上出现一个美团面试题:“一个线程OOM后,其他线程还能运行吗?”.我看网上出现了很多不靠谱的答案.这道题其实很有难度,涉及的知识点有jvm内存分配. ...

  6. MySQL的utf8问题

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

  7. Efficient Knowledge Graph Accuracy Evaluation 论文笔记

    前言 这篇论文主要讲的是知识图谱正确率的评估,将知识图谱的正确率定义为知识图谱中三元组表述正确的比例.如果要计算知识图谱的正确率,可以用人力一一标注是否正确,计算比例.但是实际上,知识图谱往往很大,不 ...

  8. python6.3类的继承与多态

    class Animal(object): def __init__(self,color): self.color=color def eat(self): print("动物在吃!&qu ...

  9. 012_go语言中的Functions 函数

    代码演示 package main import "fmt" func plus(a int, b int) int { return a + b } func plusPlus( ...

  10. spring boot项目集成zuul网关

    1 zuul简介 Zuul 的官方介绍是 “Zuul is the front door for all requests from devices and web sites to the back ...