Selenium (软件):修订间差异

无编辑摘要
无编辑摘要
第105行: 第105行:
</syntaxhighlight>
</syntaxhighlight>
{{了解更多|[https://www.selenium.dev/documentation/zh-cn/webdriver/driver_requirements/ Selenium 文档:WebDriver > 驱动要求]}}  
{{了解更多|[https://www.selenium.dev/documentation/zh-cn/webdriver/driver_requirements/ Selenium 文档:WebDriver > 驱动要求]}}  
==操控浏览器==
以下[[Python]]编程语言示例:
<syntaxhighlight lang="python">
from selenium import webdriver
driver = webdriver.Chrome()
</syntaxhighlight>
===浏览器导航===
{| class="wikitable"  style="width: 100%;
! 操作
! 描述
! Python示例
|-
| 打开网站
| 浏览器输入地址,打开网站
| driver.get("https://www.baidu.com")
|-
| 获取当前 URL
| 从浏览器的地址栏读取当前的 URL
| driver.current_url
|-
| 后退
| 按下浏览器的后退按钮
| driver.back()
|-
| 前进
| 按下浏览器的前进键
| driver.back()
|-
| 刷新
| 刷新当前页面
| driver.refresh()
|-
| 获取标题
| 从浏览器中读取当前页面的标题
| driver.title
|-
|}
===窗口和标签页===
WebDriver 没有区分窗口和标签页。如果你的站点打开了一个新标签页或窗口,Selenium 将允许您使用窗口句柄来处理它。 每个窗口都有一个唯一的标识符,该标识符在单个会话中保持持久性。
{| class="wikitable"  style="width: 100%;
! 操作
! 描述
! Python示例
|-
| 窗口句柄
| 获得当前窗口的窗口句柄
| driver.current_window_handle
|-
| 切换窗口或标签页
|
|
|-
| 创建新窗口或新标签页,并且切换
| 创建一个新窗口或标签页,屏幕焦点将聚焦在新窗口或标签在上。注意:该特性适用于Selenium 4 +
|
|-
| 关闭窗口或标签页
| 当你完成了一个窗口或标签页的工作时,_并且_它不是浏览器中最后一个打开的窗口或标签页时,你应该关闭它并切换回你之前使用的窗口。
| driver.close()
|-
| 退出浏览器
| 调用quit退出浏览器。退出将会关闭所有与 WebDriver 会话相关的窗口和选项卡,结束浏览器进程,结束后台驱动进程,通知 Selenium Grid 浏览器不再使用,以便可以由另一个会话使用
| driver.quit()
|-
|}
{{了解更多|[https://www.selenium.dev/documentation/zh-cn/webdriver/browser_manipulation/ Selenium 文档:操控浏览器]}}
==资源==
==资源==
===官网===
===官网===

2020年12月26日 (六) 10:38的版本

Selenium 是一个Web应用测试的开源框架,提供一系列Web浏览器自动化工具,可以模拟用户与浏览器的交互。Selenium IDE是一个Firefox插件,使用图形界面录制和测试。也可以通过Selenium WebDriver,使用多种语言来编写测试,包括:JavaPythonC#RubyJavaScriptKotlin

简介

主要工具

以下为Selenium提供的主要工具:

Selenium WebDriver:

Selenium IDE:

Grid:

安装

安装 Selenium

使用不同的语言,安装Selenium方式不同。

Python中可以使用 pip 安装Selenium:

pip install selenium

也可以下载源代码安装。

JavaScript中可以使用 npm 安装 :

npm install selenium-webdriver

了解更多 >> Selenium 文档:安装 Selenium 库


安装浏览器和浏览器驱动

浏览器 支持的操作系统 维护者 驱动 驱动下载
Chromium/Chrome Windows/macOS/Linux 谷歌 ChromeDriver 下载
火狐 Windows/macOS/Linux Mozilla 下载
Edge Windows 10 微软 下载
Internet Explorer Windows Selenium 项目组 下载
Safari macOS El Capitan 及更高版本 苹果 内置
Opera Windows/macOS/Linux Opera 下载

Debian/Ubuntu下安装Chrome浏览器和ChromeDriver驱动为例:

#安装Chrome浏览器
#官网下载Chrome稳定版的deb包
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
#安装Chrome
sudo apt install ./google-chrome-stable_current_amd64.deb
#验证成功,查看chrome版本,结果如:Google Chrome 87.0.4280.88
google-chrome --version

#chromedriver驱动官网:https://chromedriver.storage.googleapis.com/index.html
#在官网查找下载chrome版本对应的chromedriver驱动。如Google Chrome 87.0.4280.88
wget https://chromedriver.storage.googleapis.com/87.0.4280.88/chromedriver_linux64.zip
#解压缩
unzip chromedriver_linux64.zip
#可以将chromedriver文件放置在环境变量路径(通过echo $PATH查看)上。
mv chromedriver /usr/bin

验证是否成功,以Python语言示例:

from selenium import webdriver

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')  #
chrome_options.add_argument('--disable-dev-shm-usage')
driver = webdriver.Chrome(chrome_options=chrome_options) #如果chromedriver没有添加到环境变量中,就需要添加参数指明路径executable_path='/path/to/chromedriver'

driver.get("https://www.baidu.com")
print(driver.page_source)
client.quit()

了解更多 >> Selenium 文档:WebDriver > 驱动要求


操控浏览器

以下Python编程语言示例:

from selenium import webdriver

driver = webdriver.Chrome()

浏览器导航

操作 描述 Python示例
打开网站 浏览器输入地址,打开网站 driver.get("https://www.baidu.com")
获取当前 URL 从浏览器的地址栏读取当前的 URL driver.current_url
后退 按下浏览器的后退按钮 driver.back()
前进 按下浏览器的前进键 driver.back()
刷新 刷新当前页面 driver.refresh()
获取标题 从浏览器中读取当前页面的标题 driver.title

窗口和标签页

WebDriver 没有区分窗口和标签页。如果你的站点打开了一个新标签页或窗口,Selenium 将允许您使用窗口句柄来处理它。 每个窗口都有一个唯一的标识符,该标识符在单个会话中保持持久性。

操作 描述 Python示例
窗口句柄 获得当前窗口的窗口句柄 driver.current_window_handle
切换窗口或标签页
创建新窗口或新标签页,并且切换 创建一个新窗口或标签页,屏幕焦点将聚焦在新窗口或标签在上。注意:该特性适用于Selenium 4 +
关闭窗口或标签页 当你完成了一个窗口或标签页的工作时,_并且_它不是浏览器中最后一个打开的窗口或标签页时,你应该关闭它并切换回你之前使用的窗口。 driver.close()
退出浏览器 调用quit退出浏览器。退出将会关闭所有与 WebDriver 会话相关的窗口和选项卡,结束浏览器进程,结束后台驱动进程,通知 Selenium Grid 浏览器不再使用,以便可以由另一个会话使用 driver.quit()


了解更多 >> Selenium 文档:操控浏览器


资源

官网

参考资料