自动化测试:Selenium原理及安装教程

这篇具有很好参考价值的文章主要介绍了自动化测试:Selenium原理及安装教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、客户端和驱动(环境)安装

1、安装客户端库

2、安装浏览器和驱动

二、简单示例(Python自动化开发)

省略浏览器驱动路径

三、常见问题

关闭 chromedriver 日志

浏览器首页显示防病毒重置设置

扩展知识


Selenium 是一套 Web网站 的程序自动化操作 解决方案。

通过它,我们可以写出自动化程序,像人一样在浏览器里操作web界面。 比如点击界面按钮,在文本框中输入文字 等操作。

而且还能从web界面获取信息。 比如获取 火车、汽车票务信息,招聘网站职位信息,财经网站股票价格信息 等等,然后用程序进行分析处理。

Selenium 的自动化原理是这样的

自动化测试:Selenium原理及安装教程

从上图可以看出:

我们写的自动化程序 需要使用 客户端库

我们程序的自动化请求都是通过这个库里面的编程接口发送给浏览器。

比如,我们要模拟用户点击界面按钮, 自动化程序里面就应该 调用客户端库相应的函数, 就会发送 点击元素 的请求给 下方的 浏览器驱动。 然后,浏览器驱动再转发这个请求给浏览器。

这个自动化程序发送给浏览器驱动的请求 是HTTP请求。

客户端库从哪里来的? 是Selenium组织提供的。

Selenium组织提供了多种 编程语言的Selenium客户端库, 包括 java,python,js, ruby等,方便不同编程语言的开发者使用。

我们只需要安装好客户端库,调用这些库,就可以发出自动化请求给浏览器咯。

浏览器驱动 也是一个独立的程序,是由浏览器厂商提供的, 不同的浏览器需要不同的浏览器驱动。 比如 Chrome浏览器和 火狐浏览器有 各自不同的驱动程序。

浏览器驱动接收到我们的自动化程序发送的界面操作请求后,会转发请求给浏览器, 让浏览器去执行对应的自动化操作。

浏览器执行完操作后,会将自动化的结果返回给浏览器驱动, 浏览器驱动再通过HTTP响应的消息返回给我们的自动化程序的客户端库。

自动化程序的客户端库 接收到响应后,将结果转化为 数据对象 返回给 我们的代码。

我们的程序就可以知道这次自动化操作的结果如何了。

我们再总结一下,selenium 自动化流程如下:

  1. 自动化程序调用Selenium 客户端库函数(比如点击按钮元素)

  2. 客户端库会发送Selenium 命令 给浏览器的驱动程序

  3. 浏览器驱动程序接收到命令后 ,驱动浏览器去执行命令

  4. 浏览器执行命令

  5. 浏览器驱动程序获取命令执行的结果,返回给我们自动化程序

  6. 自动化程序对返回结果进行处理

一、客户端和驱动(环境)安装

Selenium环境的安装主要就是安装两样东西: 客户端库浏览器 驱动

1、安装客户端库

不同的编程语言选择不同的Selenium客户端库。

对应我们Python语言来说,Selenium客户端库的安装非常简单,用 pip 命令即可。

打开 命令行程序,运行如下命令

pip install selenium

自动化测试:Selenium原理及安装教程

如果安装不了,可能是网络问题,可以指定使用国内的豆瓣源

pip install selenium -i https://pypi.douban.com/simple/

2、安装浏览器和驱动

浏览器驱动 是和 浏览器对应的。 不同的浏览器 需要选择不同的浏览器驱动。

目前主流的浏览器中,谷歌 Chrome 浏览器对 Selenium自动化的支持更加成熟一些。

推荐大家使用 Chrome浏览器 。

可以点击这里,下载安装谷歌浏览器

确保Chrome浏览器安装好以后,请大家打开下面的连接,访问Chrome 浏览器的驱动下载页面

Chrome 浏览器驱动下载地址

注意浏览器驱动 必须要和浏览器版本匹配,下图红圈里面的版本号 就是和浏览器版本号对应的

比如:当前Chrome浏览器版本是98, 通常就需要下载98开头的目录里面的驱动程序 。

注意:驱动和浏览器的版本号越接近越好,但是略有差别,比如98和97 ,通常也没有什么问题。

自动化测试:Selenium原理及安装教程

查看chrome浏览器版本:

自动化测试:Selenium原理及安装教程

 找到对应版本

打开目录,里面有3个zip包,分别对应Linux、Mac、Windows平台。

如果我们是Windows平台的电脑,就下载 chromedriver_win32.zip

自动化测试:Selenium原理及安装教程

这是个zip包,下载下来之后,解压里面的程序文件 chromedriver.exe 到某个目录下面,注意这个目录的路径最好是没有中文名和空格的。

比如,解压到 d:\tools 目录下面。

也就是保证我们的Chrome浏览器驱动路径为 D:\tools\Chrome_plugins_driver\chrome_driver\chromedriver.exe

自动化测试:Selenium原理及安装教程

上面的网址,有些朋友可能打不开,我们在如下百度网盘提供了较新的驱动给大家下载

链接:https://pan.baidu.com/s/1qMzJ1n-KknqaHHd5rhDfEA 
提取码:1111

如果你选择微软 Edge浏览器,点击这里下载驱动

基于selenium的web自动化环境搭建就是这些,比较简单。


二、简单示例(Python自动化开发)

点击这里,边看视频讲解,边学习以下内容

下面的代码, 可以自动化的 打开Chrome浏览器,并且自动化打开百度网站,可以大家可以运行一下看看。

from selenium import webdriver
from selenium.webdriver.chrome.service import Service

# 创建 WebDriver 对象,指明使用chrome浏览器驱动
wd = webdriver.Chrome(service=Service(r'd:\tools\chromedriver.exe'))

# 调用WebDriver 对象的get方法 可以让浏览器打开指定网址
wd.get('https://www.baidu.com')

其中,下面这行代码,就会运行浏览器驱动,并且运行Chrome浏览器

wd = webdriver.Chrome(service=Service(r'd:\tools\chromedriver.exe'))

注意,等号右边 返回的是 WebDriver 类型的对象,我们可以通过这个对象来操控浏览器,比如 打开网址、选择界面元素等。


而下面这行代码,就是使用 WebDriver 的 get 方法 打开网址 百度

wd.get('https://www.baidu.com')

执行上面这行代码时,自动化程序就发起了 打开百度网址的 请求消息 ,通过浏览器驱动, 给 Chrome浏览器。

Chome浏览器接收到该请求后,就会打开百度网址,通过浏览器驱动, 告诉自动化程序 打开成功。

执行完自动化代码,如果想关闭浏览器窗口可以调用WebDriver对象的 quit 方法,像这样 wd.quit()

省略浏览器驱动路径

前面,我们的代码创建 WebDriver对象时,需要指定浏览器驱动路径,比如

from selenium.webdriver.chrome.service import Service
wd = webdriver.Chrome(service=Service(r'd:\tools\chromedriver.exe'))

这样写有几个问题:

一是,比较麻烦, 每次写自动化代码都 要指定路径。

二是,如果你的代码给别人运行,他的电脑上存放浏览器驱动的路径不一定和你一样(比如他的电脑是苹果Mac电脑),得改脚本。

有什么好办法呢?

我们可以把浏览器驱动 所在目录 加入环境变量 Path , 写代码时,就可以无需指定浏览器驱动路径了,像下面这样

wd = webdriver.Chrome()

因为,Selenium会自动在环境变量 Path 指定的那些目录里查找名为chromedriver.exe 的文件。

一定要注意的是, 加入环境变量 Path 的,

不是浏览器驱动全路径,比如 D:\tools\Chrome_plugins_driver\chrome_driver\chromedriver.exe

而是 浏览器驱动所在目录,比如 D:\tools\Chrome_plugins_driver\chrome_driver

自动化测试:Selenium原理及安装教程

而且设置完环境变量后,别忘了重启IDE(比如 PyCharm) 新的环境变量才会生效。

自动化测试:Selenium原理及安装教程

那么,selenium又是如何 自动化地 在网页上 点击、输入、获取信息,将在接下来的章节要学习。

三、常见问题

关闭 chromedriver 日志

缺省情况下 chromedriver被启动后,会在屏幕上输出不少日志信息,如下

DevTools listening on ws://127.0.0.1:19727/devtools/browser/c19306ca-e512-4f5f-b9c7-f13aec506ab7
[21564:14044:0228/160456.334:ERROR:device_event_log_impl.cc(211)] [16:04:56.333] Bluetooth: bluetooth_adapter_winrt.cc:1072 Getting Default Adapter failed.

可以这样关闭

from selenium import webdriver

# 加上参数,禁止 chromedriver 日志写屏
options = webdriver.ChromeOptions()
options.add_experimental_option(
    'excludeSwitches', ['enable-logging'])

wd = webdriver.Chrome(options=options  # 这里指定 options 参数
)

浏览器首页显示防病毒重置设置

有的朋友的电脑上Selenium自动化时,浏览器开始显示如下

自动化测试:Selenium原理及安装教程

可以这样解决:

  • 命令行输入 regedit ,运行注册表编辑器

  • 在左边的目录树找到 HKEY_CURRENT_USER\Software\Google\Chrome

  • 删除其下的 TriggeredReset 子项

  • 关闭 注册表编辑器

扩展知识

浏览器和驱动之间的接口是各浏览器厂商私有的,通常我们无需关心。

喜欢刨根问底的朋友,可以参考 这个链接,了解Chrome浏览器和Chrome之间的接口文章来源地址https://www.toymoban.com/news/detail-485272.html

到了这里,关于自动化测试:Selenium原理及安装教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python+Selenium自动化测试详细教程

       Python Selenium是Selenium WebDriver的Python语言封装,为Python开发者提供了一个方便易用的自动化测试库。它支持多种浏览器(如Chrome、Firefox、Edge等)以及多个操作系统,可以模拟用户在浏览器中的各种行为,包括打开网页、查找元素、输入文本、点击链接、提交表单、上传文

    2023年04月18日
    浏览(51)
  • 保姆级自动化测试教程(Selenium+java)

    自动化测试指软件测试的自动化,在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最后评估运行结果。将人为驱动的测试行为转化为机器执行的过程。 自动化测试包括 UI自动化 , 接口自动化 , 单元测试自动化 。 单元测试 :最大的投入应该在单元测试上

    2024年02月12日
    浏览(45)
  • Selenium浏览器交互原理与应用,玩转Web自动化测试

      目录  前言: 浏览器交互: Selenium的实现方式: Selenium WebDriver: WebDriver的等待机制: 总结:  Web自动化

    2024年02月08日
    浏览(52)
  • selenium自动化测试教程——java爬取数据

    selenium 是一个用于自动化测试 Web 应用的工具集 ,它可以模拟用户自动去浏览器网页上进行点击、输入、选择下拉值复选框、鼠标移动、任意 JavaScript 执行等等操作。 selenium 有三个产品: Selenium WebDriver:基于浏览器的回归自动化套件和测试,你可以使用 Java、Python、JavaScri

    2024年02月14日
    浏览(49)
  • Selenium教程:自动化浏览器测试工具

    Selenium是一款用于自动化浏览器测试的工具,它提供了一系列的API和功能,使得开发人员可以编写脚本来模拟用户在浏览器中的行为。无论是在Web应用程序的功能测试、性能测试还是数据抓取方面,Selenium都是一个强大且广泛使用的工具。 在开始使用Selenium之前,您需要进行安

    2024年02月07日
    浏览(81)
  • Python_Selenium自动化测试详细教程

       Python Selenium是Selenium WebDriver的Python语言封装,为Python开发者提供了一个方便易用的自动化测试库。它支持多种浏览器(如Chrome、Firefox、Edge等)以及多个操作系统,可以模拟用户在浏览器中的各种行为,包括打开网页、查找元素、输入文本、点击链接、提交表单、上传文

    2024年02月11日
    浏览(40)
  • 自动化测试工具之Selenium IDE录制教程

            下载传送带:Selenium IDE · Open source record and playback test automation for the web         这里Darren洋以firefox火狐浏览器为例,将以上下载url直接在firefox浏览器中打开,点击对应下载按钮后,就会进入添加页面。         这里直接点击添加到Firefox浏览器的按钮即可,谷歌浏

    2024年02月08日
    浏览(45)
  • 数十位高级测工联合讲解Selenium自动化测试框架工作原理

    一、Selenium是什么? 用官网的一句话来讲:Selenium automates browsers. That\\\'s it!简单来讲,Selenium是一个用于Web应用程序自动化测试工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作浏览器一样。支持的浏览器包括IE,Firefox,Safari,Chrome等。Selenium 不仅仅是一个工具或

    2024年02月05日
    浏览(38)
  • web自动化测试系列之selenium的运行原理和常用方法介绍(二)

    在上文中我们编写了一段简单的代码 ,可以驱动浏览器访问百度并搜索 。这里我们再把这段代码再拿来加以说明 。 如果你是初次接触它 ,你可能会想 ,这段代码是怎么驱动浏览器运行的了 ?要知道这个问题的答案 ,就必须搞清楚以下3个问题 。 它(selenium)的运行原

    2024年04月11日
    浏览(43)
  • 自动化测试工具selenium的安装方法

    一、什么是selenium Selenium 是一套 Web网站 的程序自动化操作 解决方案。 通过它,我们可以写出自动化程序,像人一样在浏览器里操作web界面。 比如点击界面按钮,在文本框中输入文字 等操作。 Selenium 通过使用  WebDriver  支持市场上所有主流浏览器的自动化。 Webdriver 是一个

    2024年02月09日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包