selenium学习分享
selenium官网
https://docs.seleniumhq.org/projects/webdriver/
环境准备
- 语言环境安装
相关语言的环境配置可去看其他博客 - 下载对应语言相的selenium包
python安装:
pip install selenium
java安装
可以使用Maven安装java的Selenium库。在项目pom.xml中添加selenium-java依赖项:
<dependency>
<groupId>org.selenium.selenium</groupId>
<artifactId>selenium-java</artifactld>
<version>4.x</version>
</dependency>
C#
可以使用NuGet 安装C#的Selenium库:
# Using package manager
Install-Package Selenium.WebDriver
# or using .Net CLI
dotnet add package Selenium.WebDriver
Ruby
可以使用gem安装Ruby的Selenium库:
gem install selenium-webdriver
JavaScript
可以使用npm安装JavaScript的Selenium库:
npm install selenium-webdriver
Kotlin
由于缺少Kotlin的原生语言的绑定,需要借助java的生态环境,例如Maven java - 下载浏览器对应的驱动
WebDriver是什么
1.翻译过来就是浏览器驱动,目前主流的浏览器都有各自对应的驱动,WebDriver以本地化方式驱动浏览器
2.WebDriver被设计成一个简单和简洁的编程接口
3.WebDriver是一个简洁的面向对象API
WebDriver工作原理
1.对应语言的selenium包当中集成了该语言编写的webdriver API,API内集成了对各主流浏览器对应的browser driver的API
2.selenium中并不包含browser driver驱动程序,驱动程序相当于服务器,浏览器相当于服务器的资源,selenium脚本相当于客户端,脚本中对浏览器的操作相当于对服务器的请求
3.同一个browser driver支持多种语言的WebDriver API,多亏于绝大多数编程语言都提供了丰富的http library,http 协议是浏览器与服务器间通信的标准协议,而 webdriver API 和 browser driver之间的通信正是依靠于http协议,在http协议的基础上,json wire protcol协议规范了请求和响应的body种部分数据格式,webdriver也是典型的C/S架构。
Browser Driver下载
1.查看浏览器的版本,可通过浏览器设置中的关于浏览器查看浏览器的版本。
2.下载相应对应浏览器对应版本的驱动器
浏览器 | 支持的操作系统 | 维护者 | 下载 |
---|---|---|---|
Chromium/Chrome | Windows/macOS/Linux | 谷歌 | 下载 |
Firefox | Windows/macOS/Linux | Mozilla | 下载 |
Edge | Windows 10 | 微软 | 下载 |
Internet Explorer | Windows | Selenium 项目组 | 下载 |
Safari | macOS El Capitan 及更高版本 | 苹果 | 内置 |
Opera | Windows/macOS/Linux | Opera | 下载 |
3.浏览器驱动只要添加到系统的path环境变量路径中就可以了, 可以直接复制到谷歌浏览器的主目录下,就是包含chrome.exe那个目录下
selenium相关方法介绍(python)
- 创建一个driver实例
from selenium import webdriver
Chrome:driver = webdriver.Chrome()
Firefox:driver = webdriver.Firefox
IE:driver = webdirver.Ie()
Edge:driver = webdriver.Edge()
Opera:driver = webdriver.Opera()
Safari:driver = webdriver.Safari
BlackBerry:driver = webdriver.BlackBerry()
phantomjs:dirver = webdriver.PhantomJS()
Android:driver = webdriver.Android()
webkitgtk:`driver = webdriver.WebKitGTK - driver常用方法介绍(以ChromeDriver为例)
构建一个ChromeDriver实例:
driver = webdriver.Chrome(self, executable_path="chromedriver", port=0,
options=None, service_args=None,
desired_capabilities=None, service_log_path=None,
chrome_options=None, keep_alive=True)
executable_path
:这是下载的谷歌驱动所存放的路径,如果使用默认值,则去用户的$path路径中寻找,通常情况下放在对应语言的主目录下或者与chrome.exe相同的目录下即可。
port
:chromedriver服务绑定的端口号,如果默认为0,则会使用一个免费的端口号。
options
:这个参数是一个对象
options = ChromeOptions()