基于Python语言的Selenium环境搭建

简介: Selenium是一个用于Web应 用程序测试的工具。

基于Python语言的Selenium环境搭建



Python+Selenium 这篇文章将不断的持续更新和重构


文章目录


1.selenium 介绍

1.1 selenium历史

1.Selenium 1.0

2.Selenium 2.0

3.Selenium 3.0

4.Selenium IDE

2. selenium的环境配置步骤

2.1 安装/卸载 selenium

2.2 安装 drive

3.selenium-webdriver元素定位参考

4. 实例


1.selenium 介绍


Selenium是一个用于Web应 用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏

览器包括IE (7, 8,9, 10, 11 ) , Moilla Firefox , Safari , Google Chrome,Opera , Edge等。


这个工具的主要功能包括:测试与浏览器的兼容性一测试应 用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能一创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成Python、Net、Java、 Peri等不同语言的测试脚本。


1.1 selenium历史


Selenium 经历了三个大版本,Selenium 1.0、Selenium 2.0 和 Selenium 3.0。Selenium 不是由单独一个工具构成的,而是由一些插件和类库组成的,这些插件和类库有其各自的特点和应用场景。Selenium 1.0 家族关系如图 1-3 所示。

微信图片_20221013144916.png


1.Selenium 1.0


(1)Selenium IDE。


Selenium IDE 是嵌入在 Firefox 浏览器中的一个插件,可实现简单的浏览器操作的录制与回放功能。


(2)Selenium Grid。


Selenium Grid 是一个自动化测试辅助工具。利用 Grid 可以很方便地实现在多台机器上或异构环境中运行测试用例。


(3)Selenium RC。


Selenium RC(Remote Control)是 Selenium 家族的核心部分,支持多种不同语言编写的自动化测试脚本。把 Selenium RC 的服务器作为代理服务器去访问应用,即可达到测试的目的。


Selenium RC 分为 Client Libraries 和 Selenium Server 两部分。Client Libraries 主要用于编写测试脚本,负责控制 Selenium Server 的库。Selenium Server 负责控制浏览器行为。


Selenium Server 主要分为三部分:Selenium Core、Launcher 和 Http Proxy。Selenium Core就是一堆 JavaScript 函数的集合。通过这些 JavaScript 函数,我们可以用程序对浏览器进行操作。Launcher 用于启动浏览器,把 Selenium Core 加载到浏览器页面当中,同时,把浏览器的代理设置为 Http Proxy。


2.Selenium 2.0


Selenium 2.0 把 WebDriver 加到了 Selenium1.0 这个家族中,简单用公式表示如下:


Selenium 2.0 = Selenium 1.0 + WebDriver


需要注意的是,在 Selenium 2.0 中主推的是 WebDriver,可以将其看作 Selenium RC 的替代品。为了保持向下的兼容性,Selenium 2.0 并没有彻底抛弃 Selenium RC。


Selenium RC 与 WebDriver 的工作方式有着本质的区别。


Selenium RC 是在浏览器中运行 JavaScript 应用,使用浏览器内置的 JavaScript 翻译器来翻译和执行 selenese 的(selenese 是 Selenium 命令集合)。


WebDriver 通过原生浏览器支持或者浏览器扩展来直接控制浏览器。WebDriver 是针对各个浏览器而开发的,取代了嵌入被测 Web 应用中的 JavaScript。WebDriver 与浏览器紧密集成,支持创建更高级的测试,避免了 JavaScript 安全模型导致的限制。除来自浏览器厂商的支持外,WebDriver 还可利用操作系统级的调用,模拟用户输入。


Selenium 与 WebDriver 原本属于两个不同的项目,WebDriver 的创建者 Simon Stewart早在 2009 年 8 月的一封邮件中解释了项目合并的原因。


3.Selenium 3.0


2016 年 7 月,Selenium 3.0 悄悄发布了第一个 beta 版。Selenium 3.0 做了以下更新。


(1)去掉了 Selenium RC,简单用公式表示如下:


Selenium 3.0 = Selenium 2.0 −Selenium RC


(2)Selenium 3.0 只支持 Java 8 以上版本。


(3)Selenium 3.0 中的 Firefox 浏览器驱动独立了。Selenium 2.0 测试库默认是集成Firefox 浏览器驱动的,在 Selenium 3.0 中,Firefox 浏览器和 Chrome 浏览器一样,在使用前需要下载和设置浏览器驱动。


(4)mac OS 操作系统集成了 Safari 的浏览器驱动,该驱动默认在/usr/bin/safaridriver 目录下。


(5)只支持 IE 9.0 以上版本。


4.Selenium IDE


Selenium IDE 同样是 Selenium的家族成员。Selenium IDE 有两个版本,旧版的 Selenium IDE 是基于 Firefox 浏览器扩展的

微信图片_20221013144924.png


它提供了比较完备的自动化功能,如脚本录制/回放、定时任务等;还可以将录制的脚本导成不同编程语言的 Selenium 测试脚本,这在很大程度上可以帮助新手编写测试用例。


但旧版的 Selenium IDE 不支持 Firefox 新版本支持的 API,因此 Selenium 团队重新开发了新版的 Selenium IDE,可以同时支持 Chrome、Firefox 以及其他浏览器。


新版的 Selenium IDE 如图 1-5 所示,功能比较简单

微信图片_20221013144930.png


2. selenium的环境配置步骤


1.准备好python环境

2.准备好selenium环境

3.下载浏览器对应的driver版本

4.driver配置环境变量

5.在python中import对应的依赖


2.1 安装/卸载 selenium


打开cmd窗口,


使用命令“pip install selenium”安装selenium


然后用命令“pip show selenium”查看是否安装成功。


卸载命令pip uninstall selenium

微信图片_20221013144939.png

Selenium 版本 3.141.0


Python IDLE 验证:没有报错证明成功

微信图片_20221013144959.png

2.2 安装 drive


设置浏览器的驱动非常简单。 我们可以手动创建一个存放浏览器驱动的目录,如: D:\driver , 将下载的浏览器驱动文件(例如:chromedriver、geckodriver、IEDriverServer)丢到该目录下。


我的电脑–>属性–>系统设置–>高级–>环境变量–>系统变量–>Path,将“D:\driver”目录添加到Path的值中。


Path

; D:\driver

注意:drive的版本应该与浏览器保持兼容

Chrome下载地址 https://www.chromedownloads.net/chrome64win-stable/list_2_2.html
 Chromedriver下载地址:http://chromedriver.storage.googleapis.com/index.html


微信图片_20221013145006.png

验证驱动 打开python自带的编辑器

微信图片_20221013145028.png


代码

>>> import selenium
>>> from selenium import webdriver
>>> driver = webdriver.Chrome

注意:Chrome “C” 区分大小写

微信图片_20221013145028.png


3.selenium-webdriver元素定位参考


自动化只要掌握四步操作:获取元素,操作元素,获取返回结果,断言(返回结果与期望结果是否一致),最后自动出测试报告。本篇主要讲如何用firefox辅助工具进行元素定位。(新版本的Chrome右键”检查”可以查看元素)

元素定位在这四个环节中是至关重要的,如果说按学习精力分配的话,元素定位占70%;操作元素10%,获取返回结果10%;断言10%。如果一个页面上的元素不能被定位到,那后面的操作就无法继续了。webdriver提供的八种基本元素定位方法。


selenium的webdriver提供了八种基本的元素定位方法,前面六种是通过元素的属性来直接定位的,后面的xpath和css定位更加灵活,需要重点掌握其中一个。

1.通过id定位:find_element_by_id()
2.通过name定位:find_element_by_name()
3.通过class定位:find_element_by_class_name()
4.通过tag定位:find_element_by_tag_name()
5.通过link定位:find_element_by_link_text()
6.通过partial_link定位:find_element_by_partial_link_text()
7.通过xpath定位:find_element_by_xpath()
8.通过css定位:find_element_by_css_selector()

4. 实例

import time
import selenium
from selenium import webdriver
# 1、创建Chrome实例 。
driver = webdriver.Chrome()
# 2、driver.get方法将定位在给定的URL的网页 。
driver.get("https://www.baidu.com/")  # get接受url可以是如何网址,此处以百度为例
# 3、定位元素
# 3.1、用id定位输入框对象,
driver.find_element_by_id("kw").send_keys("python")
# 3.2、用id定位点击对象,用click()触发点击事件
driver.find_element_by_id('su').click()
# 延迟3秒
time.sleep(3)
# 4、退出访问的实例网站。
driver.quit()



相关文章
|
1月前
|
JavaScript 前端开发 测试技术
Python Selenium基本用法
Python Selenium基本用法
29 2
|
6天前
|
前端开发 测试技术 C++
Python自动化测试面试:unittest、pytest与Selenium详解
【4月更文挑战第19天】本文聚焦Python自动化测试面试,重点讨论unittest、pytest和Selenium三大框架。unittest涉及断言、TestSuite和覆盖率报告;易错点包括测试代码冗余和异常处理。pytest涵盖fixtures、参数化测试和插件系统,要注意避免过度依赖unittest特性。Selenium的核心是WebDriver操作、等待策略和测试报告生成,强调智能等待和元素定位策略。掌握这些关键点将有助于提升面试表现。
20 0
|
10天前
|
前端开发 Java Go
开发语言详解(python、java、Go(Golong)。。。。)
开发语言详解(python、java、Go(Golong)。。。。)
|
14天前
|
Web App开发 测试技术 网络安全
|
21天前
|
数据采集 机器学习/深度学习 人工智能
Python环境搭建—安装Python3解释器
Python环境搭建—安装Python3解释器
34 2
|
1月前
|
XML 数据采集 数据格式
Python语言的结构化标志语言处理
Python语言的结构化标志语言处理
|
1月前
|
Web App开发 前端开发 JavaScript
Python Selenium是一个强大的自动化测试工具
Python Selenium是一个强大的自动化测试工具
|
1月前
|
Java 测试技术 Maven
《手把手教你》系列基础篇之(二)-java+ selenium自动化测试-环境搭建(下)基于Maven(详细教程)
【2月更文挑战第11天】《手把手教你》系列基础篇之(二)-java+ selenium自动化测试-环境搭建(下)基于Maven(详细教程) 是一个软件项目管理和综合工具。基于项目对象模型(POM)的概念,Maven可以从一个中心资料片管理项目构建,报告和文件。由于现在企业和公司中Java的大部分项目都是基于Maven, 因此宏哥为了照顾到企业或者公司用的java项目中用到maven的童鞋或者小伙伴们,这里也简单的介绍和分享一下。在Maven项目中使用Selenium. 非常简单。
70 3
|
1月前
|
Web App开发 测试技术 Python
使用 Python 结合 Selenium 访问一个 url
使用 Python 结合 Selenium 访问一个 url
26 0
|
1月前
|
Web App开发 安全 定位技术
关于使用 Python 和 Selenium chrome driver 访问 url 时修改 source ip 的问题
关于使用 Python 和 Selenium chrome driver 访问 url 时修改 source ip 的问题
60 0