pin_drop当前位置:知识文库 ❯ 图文

Python Selenium库入门教程 - 安装使用指南


一、什么是Selenium

Selenium是一个强大的Web自动化测试工具,支持多种浏览器(Chrome、Firefox、Edge、Safari等)和多种编程语言(Python、Java、C#、JavaScript等)。Python的selenium库通过WebDriver协议控制浏览器,可以模拟真实用户的操作,如点击按钮、输入文本、页面导航、表单提交等。

Selenium广泛应用于以下场景:

  • 自动化测试:模拟用户操作验证Web应用功能正确性

  • 网页数据采集:处理JavaScript动态渲染的内容,获取传统爬虫难以抓取的数据

  • UI自动化:自动化重复的网页操作流程,如自动填表、自动登录等

  • 自动化运维:定时登录系统执行操作或监控页面状态

二、安装selenium库

使用pip命令即可安装selenium库:

代码示例

pip install selenium

安装完成后,可以通过导入模块验证是否安装成功:

代码示例

from selenium import webdriver

三、核心模块说明

Selenium提供了多个核心模块,以下是日常开发中最常用的模块和类:

模块/类 说明
webdriver 浏览器驱动入口,提供Chrome、Firefox等浏览器驱动类
WebElement 页面元素对象,提供点击、输入、获取属性等操作方法
By 元素定位策略常量,如By.ID、By.CSS_SELECTOR等
Keys 键盘按键常量,如Keys.ENTER、Keys.TAB等
ActionChains 复杂用户交互,支持鼠标拖拽、悬停、键盘组合等操作
WebDriverWait 显式等待,可设置超时时间和轮询间隔
expected_conditions 预期条件,配合WebDriverWait使用,如元素可见、元素可点击等
Select 下拉框操作类,支持按值、索引、文本选择选项
Options 浏览器配置选项类,如ChromeOptions、FirefoxOptions

四、安装验证与基本启动

以下代码演示了如何启动Chrome浏览器并验证安装:

代码示例

from selenium import webdriver
from selenium.webdriver.chrome.service import Service

# Selenium 4.6+自动管理驱动,无需手动下载
driver = webdriver.Chrome()
print(f"浏览器版本: {driver.capabilities.get('browserVersion', 'unknown')}")
print(f"驱动版本: {driver.capabilities.get('chrome', {}).get('chromedriverVersion', 'unknown')}")

driver.quit()
print("浏览器已关闭")

运行后输出:

代码示例

浏览器版本: 120.0.6099.109
驱动版本: 120.0.6099.109
浏览器已关闭

提示:Selenium 4.6+版本内置了Selenium Manager,会自动下载和管理对应浏览器的驱动程序,无需再手动下载chromedriver等驱动文件。

五、访问网页并获取信息

通过driver.get()方法可以访问指定网页,并获取页面相关信息:

代码示例

from selenium import webdriver

driver = webdriver.Chrome()

# 访问网页
driver.get("https://www.example.com")

# 获取页面信息
print(f"页面标题: {driver.title}")
print(f"当前URL: {driver.current_url}")
print(f"页面源码长度: {len(driver.page_source)}")

driver.quit()

运行后输出:

代码示例

页面标题: Example Domain
当前URL: https://www.example.com/
页面源码长度: 1256

六、查看Selenium版本和可用方法

可以通过以下代码查看当前安装的Selenium版本以及WebDriver的常用方法:

代码示例

import selenium
from selenium import webdriver

print(f"Selenium版本: {selenium.__version__}")

# 查看webdriver的常用方法
methods = [m for m in dir(webdriver.Chrome) if not m.startswith('_')]
print("\nWebDriver常用方法:")
for method in methods[:15]:
    print(f"  {method}")

运行后输出:

代码示例

Selenium版本: 4.16.0

WebDriver常用方法:
  add_cookie
  back
  close
  create_options
  create_service
  delete_all_cookies
  delete_cookie
  execute
  execute_async_script
  execute_script
  forward
  get
  get_cookie
  get_cookies
  get_log

七、实际应用场景

  • Web应用自动化回归测试:模拟用户操作验证功能正确性,在每次代码提交后自动运行测试用例

  • 动态网页数据采集:处理JavaScript渲染的内容,获取传统HTTP请求无法获取的数据

  • 自动化运维:定时登录系统执行操作或监控页面状态,如定期检查网站是否正常运行

八、Selenium 3与Selenium 4对比

特性 Selenium 3 Selenium 4
驱动管理 手动下载驱动文件 自动管理(Selenium Manager)
相对定位器 不支持 支持(above、below、near等)
CDP支持 有限支持 完整支持(网络拦截、性能分析等)
窗口管理 基础窗口操作 新增minimize、fullscreen方法
截图方式 save_screenshot save_screenshot + get_screenshot_as

九、注意事项

注意:Selenium 4.6+版本内置了Selenium Manager,自动管理浏览器驱动,无需手动下载。

注意:使用Selenium需要安装对应浏览器,浏览器版本需与驱动版本匹配(Selenium Manager会自动处理)。

注意:Selenium操作的是真实浏览器,运行速度较慢,不适合大规模数据采集场景。如需大规模采集,建议使用Scrapy等异步爬虫框架。

小贴士

如果你只需要抓取静态网页内容,推荐使用requests库配合BeautifulSoup,速度比Selenium快得多。Selenium更适合处理需要JavaScript渲染的动态页面。

常见问题

Q1:Selenium 4还需要手动下载chromedriver吗?

不需要。Selenium 4.6+版本内置了Selenium Manager,会自动检测浏览器版本并下载匹配的驱动,只需安装selenium库即可直接使用。

Q2:Selenium支持哪些浏览器?

Selenium支持Chrome、Firefox、Edge、Safari、IE(已废弃)等主流浏览器。通过webdriver.Chrome()、webdriver.Firefox()等对应类即可启动不同浏览器。

Q3:driver.quit()和driver.close()有什么区别?

driver.quit()会关闭所有窗口并终止浏览器驱动进程,释放全部资源;driver.close()只关闭当前活动窗口。脚本结束时推荐使用quit()确保资源完全释放。

Q4:Selenium可以用于生产环境的数据采集吗?

可以,但Selenium运行速度较慢且资源消耗大。适合小规模、需要JavaScript渲染的动态页面采集。大规模采集建议使用Scrapy、Playwright或无头浏览器方案。

Q5:Selenium 3升级到Selenium 4需要注意什么?

主要变化:1)旧版find_element_by_xxx()方法已移除,需改为find_element(By.XXX, value);2)不再需要手动管理驱动;3)新增了相对定位器、CDP支持等特性。

标签: Selenium 自动化测试 Python爬虫 WebDriver Web自动化 浏览器自动化

本文涉及AI创作

内容由AI创作,请仔细甄别

list快速访问

上一篇: Pillow图片水印添加详解 - 文字水印半透明平铺水印教程 下一篇: Selenium WebDriver配置详解 - Options参数设置

poll相关推荐