1、简介
Selenium是一个自动化测试工具,它支持多种浏览器和操作系统,可以模拟真实用户的行为,如点击、输入文本、滚动页面等。Selenium可以在多种编程语言中使用,如Java、Python、C#等。它可以帮助测试人员快速、准确地测试应用程序的功能和性能。Selenium还提供了丰富的API和库,使得测试人员可以轻松地编写测试脚本,并与其他测试工具集成。
Selenium 是一套 Web网站 的程序自动化操作 解决方案。 通过它,我们可以写出自动化程序,像人一样在浏览器里操作web界面。 比如点击界面按钮,在文本框中输入文字 等操作。 而且还能从web界面获取信息。 比如获取 火车、汽车票务信息,招聘网站职位信息,财经网站股票价格信息 等等,然后用程序进行分析处理。
2、Selenium 的自动化原理
3、selenium 自动化流程如下:
- 自动化程序调用Selenium 客户端库函数(比如点击按钮元素)
- 客户端库会发送Selenium 命令 给浏览器的驱动程序
- 浏览器驱动程序接收到命令后 ,驱动浏览器去执行命令
- 浏览器执行命令
- 浏览器驱动程序获取命令执行的结果,返回给我们自动化程序
- 自动化程序对返回结果进行处理
4、安装客户端库
Python语言用 pip 命令安装Selenium客户端库。selenium安装非常简单。 打开 命令行程序,运行如下命令: # pip install selenium
如果安装不了,可能是网络问题,可以指定使用国内的豆瓣源 pip install selenium -i https://pypi.douban.com/simple/
5、安装Chrome浏览器
- 浏览器驱动是和 浏览器对应的。 不同的浏览器 需要选择不同的浏览器驱动。
- 目前主流的浏览器中,谷歌 Chrome 浏览器对 Selenium自动化的支持更加成熟一些。推荐大家使用 Chrome浏览器。 Chrome 历史版本下载: https://vikyd.github.io/download-chromium-history-version
6、安装Chrome浏览器驱动
Chrome 114以前的 版本访问下面的链接: https://chromedriver.storage.googleapis.com/index.html
7、安装Edge浏览器驱动
微软的Edge浏览器对Selenium自动化的支持也不错。 现在Windows操作系统自带Edge浏览器,不需要你额外安装。 所以,如果你选择微软 Edge浏览器做自动化,只需要按照 Edge浏览器驱动,如下: 点击这里打开Edge浏览器驱动下载页面,选择在 Stable Channel 下载(下图箭头处)
根据电脑运行平台,选择相应的链接。例如,如果您的电脑使用的是x86架构的CPU(目前AMD和Intel的CPU都是x86架构),并且运行的是Windows系统,那么通常建议选择x64链接。不过,请注意,x86链接对应的是32位的浏览器驱动,但因为Windows操作系统目前都兼容运行32位程序,所以也可以使用x86链接。
下面的代码, 可以自动化的 打开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')
# 程序运行完会自动关闭浏览器,就是很多人说的闪退 # 这里加入等待用户输入,防止闪退 input('等待回车键结束程序')
- 关闭 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 参数 )
标签:webdriver,浏览器,python,Selenium,selenium,Chrome,自动化 From: https://blog.51cto.com/redone/9536175