Selenium 是一个流行的开源自动化工具,用于控制和驱动 Web 浏览器,模拟用户与网页的交互。
它广泛应用于自动化测试、网页抓取和数据采集、UI 测试等领域。
Selenium 支持多种浏览器(如 Chrome、Firefox、Edge 等)和编程语言(如 Python、Java、C# 等),并且能够与多个操作系统兼容(Windows、Linux、macOS 等)。
主要组件
Selenium WebDriver:
WebDriver 是 Selenium 的核心部分,用于驱动浏览器并与网页进行交互。它允许通过编程语言控制浏览器执行用户操作,如点击按钮、输入文本、提交表单等。
Selenium IDE:
Selenium IDE 是一个浏览器插件(支持 Chrome 和 Firefox),用于记录和回放用户的操作。这是一个无代码的自动化工具,适合不熟悉编程的用户。它主要用于创建简单的自动化脚本。
Selenium Grid:
Selenium Grid 用于分布式测试,它可以在多个机器和浏览器上并行运行测试。这样可以加速测试过程,特别是在需要跨浏览器兼容性测试时。
基本功能
- 浏览器控制:可以启动和关闭浏览器,控制浏览器的行为,模拟用户点击、输入、滚动、窗口切换等操作。
- 网页元素定位:支持多种方式定位网页上的元素(如通过 ID、类名、XPath、CSS 选择器等)。
- 表单操作:支持输入文本、选择下拉框选项、点击按钮等表单操作。
- 截图和保存页面:能够截取网页截图或保存网页的 HTML 内容。
- 处理动态内容:支持处理 JavaScript 动态加载的内容,模拟真实用户行为,确保能够获取到完整的页面内容。
安装设置
https://www.49855.net/selenium-install
启动 WebDriver 示例(Python)
from selenium import webdriver
# 指定 chromedriver 的路径,或者通过 PATH 环境变量自动查找
driver = webdriver.Chrome(executable_path=’/path/to/chromedriver’)
# 打开网页
driver.get(“https://www.example.com”)
# 获取网页标题
print(driver.title)
# 关闭浏览器
driver.quit()
常用操作
启动浏览器
from selenium import webdriver
# 启动 Chrome 浏览器
driver = webdriver.Chrome(executable_path=’/path/to/chromedriver’)
# 启动 Firefox 浏览器
# driver = webdriver.Firefox(executable_path=’/path/to/geckodriver’)
# 启动 Edge 浏览器
# driver = webdriver.Edge(executable_path=’/path/to/msedgedriver’)
打开网页
driver.get(“https://www.example.com”)
定位元素
通过 ID 定位:
element = driver.find_element_by_id(“element_id”)
通过类名定位:
element = driver.find_element_by_class_name(“class_name”)
通过 CSS 选择器定位:
element = driver.find_element_by_css_selector(“div.container > a”)
通过 XPath 定位:
element = driver.find_element_by_xpath(“//div[@class=’container’]/a”)
执行操作
一旦定位到元素,你可以对其进行多种操作:
点击按钮:
element.click()
输入文本到文本框:
input_element = driver.find_element_by_id(“search_box”)
input_element.send_keys(“Hello, Selenium!”)
提交表单:
form_element = driver.find_element_by_id(“form_id”)
form_element.submit()
获取页面内容
获取网页标题:
title = driver.title
print(title)
获取页面 HTML:
html = driver.page_source
截取网页截图:
driver.save_screenshot(“screenshot.png”)