Selenium

作者admin

2月 9, 2025

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”)

 

作者 admin

百度广告效果展示