前言

在程序员的世界中,一切重复性的工作,都应该通过程序自动执行。「自动化测试」就是一个最好的例子。随着互联网应用开发周期越来越短,迭代速度越来越快,只会点点点,不懂开发的手工测试,已经无法满足如今的业务要求,只能被企业逐步裁员淘汰。「自动化测试和持续测试」就成为了业界主流。

如果在招聘网站搜索「测试工程师」的职位,95% 的招聘都会有「掌握自动化测试以及 Python」的相关要求。可以说,python 自动化已经不是加分项了,而成了面试成功的必备技能。



所以,如果你正准备入行或者转岗做测试工程师的工作,Python 自动化测试将是必学技能之一。

Python + Selenium

说到自动化测试,就不得不提大名鼎鼎的 Selenium。Selenium 是如今最常用的自动化测试工具之一,支持快速开发自动化测试框架,且支持在多种浏览器上执行测试。

Selenium学习难度小,开发周期短。对测试人员来说,如果你编程经验不足,python +Selenium 是个很好的选择。语法简约,清晰,可以显著减少后期维护难度和工作压力。

今天,我们就介绍一下如何用 Selenium 快速开始 Web 测试工作!(以下内容出自实验楼课程——「Python 自动化测试实战」,欢迎大家来实验楼边敲代码边练习!)课程地址:https://www.shiyanlou.com/courses/1163

Selenium 基础知识

本节课程介绍 Selenium 的功能作用及安装、环境配置,并介绍 Selenium 常用的语法。

知识点

  • Selenium 介绍

  • 安装 Selenium

  • 安装 geckodriver 浏览器驱动

  • Selenium 的元素定位

  • 点击元素

  • 清空文本输入框、向文本输入框输入文本

  • 获取元素属性

  • 下拉页面

  • 页面弹窗的定位以及弹窗文本的获取

  • 窗口跳转

  • iframe 定位

安装需要的库:

sudo pip3 install --upgrade pipsudo pip3 install selenium

实验环境

  • Firefox 浏览器

  • python 3.5

  • geckodriver 0.22.0

  • selenium 3

实验步骤

Selenium 在进行回归测试的时候会被经常用到,接下来我们就学习 Selenium 的知识。当我们进入selenium 官网时可以看到,网站的 title 上写的是 Selenium - Web Browser Automation,翻译过来就是网站浏览器自动化。也就是说我们把平时在网页上做的功能测试用 Selenium 代码实现,这样在回归测试的时候就可以达到省时省力的目的。Selenium 在工作中的应用常见于功能基本稳定、没有频繁大变动的网页。所以我们一般是在业务功能上线以后,为确保页面稳定,用 Selenium 实现自动化回归测试,结合 git、Jenkins 一起,每当有新功能上线时都会执行写好的 Selenium 代码以验证新上线的业务对原有页面功能没有造成影响。如有报错,则发送相应的通知,这样就可以确保对线上功能出现的未预期 bug 进行及时的修复。

安装 Selenium

在 xfce 中输入sudo pip3 install selenium安装最新版本的 Selenium。

浏览器、geckodriver

既然名为网页浏览器自动化自然要安装浏览器,一般来说,ChromeFirefox等浏览器都可以,这里我们使用当前系统自带的Firefox作为实验浏览器。现在我们需要下载对应的浏览器驱动geckodriver,在xfce中输入以下命令:

$ wget https://labfile.oss.aliyuncs.com/courses/1163/geckodriver-v0.22.0-linux64.tar.gz

下载成功后继续输入:

$ tar zxvf geckodriver-v0.22.0-linux64.tar.gz$ sudo mv geckodriver /usr/local/bin

以上操作为:将文件解压,并移动至/usr/local/bin文件夹中。将目录切换至桌面:

$ cd /home/shiyanlou/Desktop

下面我们来验证是否正常安装,在终端使用命令vim demo.py创建文件并写入代码:

#! /usr/bin/python3from selenium import webdriverdriver = webdriver.Firefox()driver.get("https://www.shiyanlou.com")

输入python3 demo.py如果浏览器打开并进入实验楼网站,则环境配置就成功了。

浏览器操作

在终端使用命令vim demo2.py创建文件并写入代码:

#! /usr/bin/python3from selenium import webdriverfrom time import sleepdriver = webdriver.Firefox()# 浏览器进入百度网站driver.get("https://www.baidu.com")# 设置浏览器宽800,高400driver.set_window_size(800, 400)# 等待3秒sleep(3)# 刷新页面driver.refresh()# 等待3秒sleep(3)# 最大化窗口driver.maximize_window()# 退出浏览器driver.quit()
- name: check file  script: |    #!/bin/bash    ls /home/shiyanlou/Desktop/demo2.py  error:    还没有在 /home/shiyanlou/Desktop 目录下新建 demo2.py 文件

以上代码会在浏览器中执行:

  • 打开浏览器

  • 进入百度网站

  • 设置窗口大小为宽 800,高 400

  • 等待 3 秒

  • 刷新页面

  • 最大化窗口

  • 退出浏览器

演示

这里我们使用51Testing 软件测试论坛作为演示网站,如果大家没有账号需要先去注册一个,下面的代码将会使用到账号信息,在终端使用命令vim demo3.py创建文件并写入代码:

#! /usr/bin/python3from selenium import webdriverfrom time import sleepdriver = webdriver.Firefox()# 进入51testing网站driver.get("http://bbs.51testing.com/forum.php")sleep(3)# 用id定位账号输入框并输入账号driver.find_element_by_id("ls_username").send_keys("您的用户名")# 用id定位密码输入框并输入密码driver.find_element_by_id("ls_password").send_keys("密码")# 定位“登录”按钮并获取登录按钮的文本txt = driver.find_element_by_xpath('//*[@id="lsform"]/div/div[1]/table/tbody/tr[2]/td[3]/button').text# 打印获取的文本print(txt)# 定位“登录”按钮并获取登录按钮的type属性值type = driver.find_element_by_xpath('//*[@id="lsform"]/div/div[1]/table/tbody/tr[2]/td[3]/button').get_attribute("type")# 打印type属性值print(type)# 定位“登录”按钮并进行点击操作driver.find_element_by_xpath('//*[@id="lsform"]/div/div[1]/table/tbody/tr[2]/td[3]/button').click()

在终端执行python3 demo3.py运行,结果显示如下:页面显示:执行以上代码后会在 xfce 中输出如下信息:篇幅有限,后续共有 6 节实验,欢迎大家来实验楼亲手完成这个项目。课程地址:https://www.shiyanlou.com/courses/1163

送书福利

小楼从一位自动化测试大牛那里,为大家争取到了送书福利~

免费送书,包邮到家。参与方式:交流区留言,取留言点赞数最高的几位。留言格式:求书+相关留言本次送书如下: 

Python Web 自动化测试入门与实战》本书由一线测试工程师结合工作实践精心编撰。全书基于 Python 语言,从环境搭建、基础知识、常用框架、项目实战、持续集成等方面详细介绍了 Web 自动化测试的必备知识。技术先进,通俗易懂,示例丰富,特别适合于想入行自动化测试岗位的初学者和在校学生,也适合掌握了一定的测试基础知识希望快速提升实战能力的读者使用。取留言点赞数最高的前三位,心动的小伙伴评论区走起。统计时间截至 2020.05.29(本周五) 下午 06:00 整~

python selenium 获取元素下的元素个数_Python + Selenium,分分钟搭建 Web 自动化框架!(送自动化测试书籍)...相关推荐

  1. python 自动化框架_学会Python+Selenium,分分钟搭建Web自动化框架!

    用python+selenium实现UI自动化测试,要有一些HTML和xpth的基础,当然python基础一定是必须要会的.笔者建议花点时间了解下相关基础知识,不至于后面发懵. 一.什么是seleni ...

  2. [css] 父元素下有子元素,子元素也有高度但父元素的高度为何为0呢?分析下可能出现的原因及解决方法

    [css] 父元素下有子元素,子元素也有高度但父元素的高度为何为0呢?分析下可能出现的原因及解决方法 父元素塌陷父元素在文档流中高度默认是被子元素撑开的,当子元素脱离文档流以后,将无法撑起父元素的高度 ...

  3. 使用小技巧教你用Selenium获取鼠标指向的元素

    有一个同学在Gne的群里面咨询如何通过Selenium获取当前鼠标指向的元素,在我讲了方法以后,他过了两天又来问: 那么,我今天就来写一篇文章,具体说说应该怎么操作. 这个方法的核心,是借助JavaS ...

  4. python中获取目录下所有文件名以及读取一个文件内的每一行

    2020-12-25 读取目录下所有文件 img_list=os.listdir(img_path) 获取img_path下所有文件名,返回值类型为list,同时也可以得到该目录下所有文件夹名 读取文 ...

  5. Python + Selenium,带你分分钟搭建 Web 自动化测试框架!

    在程序员的世界中,一切重复性的工作,都应该通过程序自动执行.「自动化测试」就是一个最好的例子. 随着互联网应用开发周期越来越短,迭代速度越来越快,只会点点点,不懂开发的手工测试,已经无法满足如今的业务 ...

  6. Python + Selenium,分分钟搭建 Web 自动化测试框架!

    在程序员的世界中,一切重复性的工作,都应该通过程序自动执行.「自动化测试」就是一个最好的例子. 随着互联网应用开发周期越来越短,迭代速度越来越快,只会点点点,不懂开发的手工测试,已经无法满足如今的业务 ...

  7. Python + Selenium,分分钟搭建 Web 自动化测试框架

    在程序员的世界中,一切重复性的工作,都应该通过程序自动执行. 「自动化测试」就是一个最好的例子. 随着互联网应用开发周期越来越短,迭代速度越来越快,只会点点点,不懂开发的手工测试,已经无法满足如今的业 ...

  8. python(十二)Uiautomator2搭建UI自动化框架实战

    前言 由于公司UI自动化框架底层用的是Uiautomator2,所以我就用Uiautomator2搭了一套UI自动化框架,并运用某软件做了一个实战,思路其实和之前写的Appnium一样的 ps:这里其 ...

  9. python的web自动化框架实例_Selenium基于Python web自动化测试框架 -- PO

    关于selenium测试框架首先想到的就是PO模型,简单说下PO模型 PO模型的概念和理解: PO就是一个设计思想,将代码以页面为单位进行组织,针对这个页面上的所有信息.相关操作都放到一个类中,从而使 ...

最新文章

  1. 数值分析龙贝格matlab,龙贝格matlab程序
  2. 001_Redis介绍
  3. C++函数模板的重载
  4. JavaScript中foreach()用法及使用的坑
  5. yii2 mysql save_Yii2 开发 MySQL 数据备份功能
  6. 二月十大病毒排行 加花加密最危险
  7. python使用级数pi的近似值_JavaScript与Python计算pi的近似值运行时间对比
  8. 手机App都在偷听我说话?窃听疑云全球密布,科技公司连连喊冤
  9. C语言内存模型的栈帧,java内存模型(线程独占部分)
  10. hive元数据库表分析及操作
  11. (转)10条名言,让你少走弯路
  12. easyui中datagrid空数据集不刷新的解决方式
  13. 数据结构之二叉查找树介绍
  14. ajax 将整个表单提交到后台处理
  15. HTML5游戏开发进阶指南.pdf
  16. SolidWorks Simulation热仿真优化设计 提高企业生产效率
  17. 计算机基础(01)基础知识
  18. ubuntu设置分辨率
  19. WebRTC VideoEngine综合应用示例(一)——视频通话的基本流程
  20. java短学期教师总结_短学期心得体会(共10篇).docx

热门文章

  1. v540 检测的问题
  2. 三种model 在lfw 上的精度
  3. WSASocket()和socket()两个函数的区别
  4. 机器学习与计算机视觉(keras和mnist)
  5. C语言和设计模式(备忘录模式)
  6. 用汇编的眼光看C++(之算术符重载)
  7. 字符串转换成整数 php,php如何将字符串转为整数
  8. android wine教程_技术|如何在 Android 上借助 Wine 来运行 Windows Apps
  9. Linux里sra文件是什么,prefetch命令下载SRA文件
  10. numpy序列预处理dna序列_干货 :教你一文掌握数据预处理