知行迭代
导航
首页
最近更改
随机页面
常用
分类目录
Linux命令
Mediawiki常用
电脑技巧
工具
链入页面
相关更改
特殊页面
页面信息
登录
查看“Selenium (软件)”的源代码
←
Selenium (软件)
页面
讨论
阅读
查看源代码
查看历史
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:[
[1]
]
您可以查看和复制此页面的源代码。
Selenium 是一个Web应用测试的开源框架,提供一系列Web浏览器自动化工具,可以模拟用户与浏览器的交互。Selenium IDE是一个Firefox插件,使用图形界面录制和测试。也可以通过Selenium WebDriver,使用多种语言来编写测试,包括:[[Java]]、[[Python]]、[[C#]]、[[Ruby]]、[[JavaScript]] 和 [[Kotlin]] 。 ==简介== ===主要工具=== 以下为Selenium提供的主要工具: Selenium WebDriver: Selenium IDE: Grid: ===安装=== ====安装 Selenium==== 使用不同的语言,安装Selenium方式不同。 Python中可以使用 pip 安装Selenium: pip install selenium 也可以下载源代码安装。 JavaScript中可以使用 npm 安装 : npm install selenium-webdriver {{了解更多|[https://www.selenium.dev/documentation/zh-cn/selenium_installation/installing_selenium_libraries/ Selenium 文档:安装 Selenium 库]}} ====安装浏览器和浏览器驱动==== {| class="wikitable" |- ! 浏览器 ! 支持的操作系统 ! 维护者 ! 驱动 ! 驱动下载 |- | [[Chromium]]/[[Google Chrome|Chrome]] | Windows/macOS/Linux | 谷歌 | [[ChromeDriver]] | [https://chromedriver.storage.googleapis.com/index.html 下载] |- | 火狐 | Windows/macOS/Linux | Mozilla | | 下载 |- | Edge | Windows 10 | 微软 | | 下载 |- | Internet Explorer | Windows | Selenium 项目组 | | 下载 |- | Safari | macOS El Capitan 及更高版本 | 苹果 | | 内置 |- | Opera | Windows/macOS/Linux | Opera | | 下载 |} 以[[Debian]]/[[Ubuntu]]下安装[[Google Chrome|Chrome]]浏览器和[[ChromeDriver]]驱动为例: <syntaxhighlight lang="bash"> #安装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 </syntaxhighlight> 验证是否成功,以[[Python]]语言示例: <syntaxhighlight lang="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() </syntaxhighlight> {{了解更多|[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 文档:操控浏览器]}} ==网络元素== ==键盘操作== 键盘操作通过使用底层接口允许我们向web浏览器提供虚拟设备输入。 ===键盘输入=== sendKeys用于模拟键盘输入。不同语言版本中函数名有一些差别,如Java中使用sendKeys()函数,Python中使用send_keys()函数。以下示例为Python版,打开百度网页,在输入框输入”webdriver“并按回车键: <syntaxhighlight lang="python"> from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys driver = webdriver.Chrome() # 打开百度页面 driver.get("http://www.baidu.com") # 输入"webdriver"文本和输入"ENTER"按键 driver.find_element(By.ID, "kw").send_keys("webdriver" + Keys.ENTER) # 查看页面代码 driver.page_source </syntaxhighlight> ===按下按键=== keyDown用于模拟按下辅助按键(CONTROL, SHIFT, ALT)的动作。 ===按键弹起=== keyUp用于模拟辅助按键(CONTROL, SHIFT, ALT)弹起或释放的操作。 ===清除=== clear用于清除可编辑元素的内容。 {{了解更多|[https://www.selenium.dev/documentation/zh-cn/webdriver/keyboard/ Selenium 文档:Keyboard]}} ==资源== ===官网=== *官网:https://www.selenium.dev *中文文档:https://www.selenium.dev/documentation/zh-cn/ *Github:https://github.com/SeleniumHQ/selenium *PyPI:https://pypi.python.org/pypi/selenium ==参考资料== *[https://en.wikipedia.org/wiki/Selenium_(software) 维基百科:Selenium (software)] *[https://developer.mozilla.org/zh-CN/docs/Web/WebDriver MDN:WebDriver]
本页使用的模板:
模板:了解更多
(
查看源代码
)
返回至“
Selenium (软件)
”。