Python + Selenium 入门教程:Web 自动化测试快速入门

发布于:2025-02-11 ⋅ 阅读:(63) ⋅ 点赞:(0)

Python + Selenium 入门教程:Web 自动化测试快速入门

Selenium 是一个非常流行的 Web 自动化测试工具,广泛应用于自动化浏览器操作、爬虫开发以及 Web 应用程序的功能测试等领域。与 Python 结合使用时,Selenium 提供了简单且强大的功能,使得自动化测试变得更加高效。

本教程将带你了解如何使用 PythonSelenium 进行 Web 自动化测试的基本操作。

1. 安装和配置

1.1 安装 Python 和 Selenium

首先,确保你已经安装了 Python。如果尚未安装,可以从 Python 官方网站 下载并安装。

然后,通过 pip 安装 Selenium 库:

pip install selenium

1.2 安装 WebDriver

Selenium 需要一个 WebDriver 来与浏览器进行交互。不同的浏览器有不同的 WebDriver。常见的浏览器和其对应的 WebDriver 包括:

  • Chrome: ChromeDriver
  • Firefox: GeckoDriver
  • Edge: EdgeDriver

在这里,以 Chrome 为例:

  1. 访问 ChromeDriver 下载页面,下载与当前 Chrome 浏览器版本匹配的 ChromeDriver
  2. 解压下载的文件,并将 chromedriver.exe 文件所在的路径添加到系统环境变量中,或在代码中直接指定路径。

2. 使用 Selenium 进行浏览器自动化

2.1 启动浏览器

我们首先用 Selenium 启动一个浏览器并打开一个网页。

from selenium import webdriver

# 启动 Chrome 浏览器
driver = webdriver.Chrome()

# 打开一个网页
driver.get("https://www.baidu.com")

# 等待 5 秒钟,查看浏览器
import time
time.sleep(5)

# 关闭浏览器
driver.quit()

在上述代码中,我们首先导入了 webdriver,然后用 webdriver.Chrome() 启动了一个 Chrome 浏览器,并用 get() 方法打开了 Google 的首页。

2.2 查找页面元素

Selenium 提供了多种方法来定位网页元素。常见的定位方法有:

  • by ID: find_element_by_id()
  • by Name: find_element_by_name()
  • by Class Name: find_element_by_class_name()
  • by XPath: find_element_by_xpath()
  • by CSS Selector: find_element_by_css_selector()
示例:通过 ID 查找元素
from selenium import webdriver
from selenium.webdriver.common.by import By

# 启动 Chrome 浏览器
driver = webdriver.Chrome()

# 打开 Google 首页
driver.get("https://www.google.com")

# 查找搜索框,输入文本
search_box = driver.find_element(By.NAME, "q")
search_box.send_keys("Python Selenium")

# 提交搜索
search_box.submit()

# 等待 5 秒钟查看结果
import time
time.sleep(5)

# 关闭浏览器
driver.quit()

在这段代码中,我们通过 find_element(By.NAME, "q") 定位到 Google 的搜索框,并使用 send_keys() 方法输入搜索内容,最后通过 submit() 方法提交搜索。

2.3 模拟点击操作

我们可以模拟点击网页上的元素,例如按钮、链接等。

from selenium import webdriver
from selenium.webdriver.common.by import By

# 启动 Chrome 浏览器
driver = webdriver.Chrome()

# 打开网页
driver.get("https://www.example.com")

# 查找并点击链接
link = driver.find_element(By.LINK_TEXT, "More information...")
link.click()

# 等待 5 秒钟
import time
time.sleep(5)

# 关闭浏览器
driver.quit()

在上述代码中,find_element(By.LINK_TEXT, "More information...") 查找一个链接,并用 click() 模拟点击。

2.4 执行 JavaScript 脚本

Selenium 还允许执行 JavaScript 脚本,例如获取页面的标题,或者直接在页面上执行一些操作。

from selenium import webdriver

# 启动 Chrome 浏览器
driver = webdriver.Chrome()

# 打开网页
driver.get("https://www.example.com")

# 执行 JavaScript 脚本,获取页面标题
title = driver.execute_script("return document.title;")
print(f"页面标题是: {title}")

# 关闭浏览器
driver.quit()

通过 execute_script() 方法,你可以执行 JavaScript 脚本并返回结果。

2.5 等待页面加载

在自动化脚本中,页面加载的时间可能不一致。因此,使用 Selenium 的 显式等待隐式等待 可以确保元素已经加载完毕。

隐式等待

隐式等待会在查找元素时等待一定的时间,直到元素可用为止。

from selenium import webdriver

# 启动 Chrome 浏览器
driver = webdriver.Chrome()

# 设置隐式等待时间为 10 秒
driver.implicitly_wait(10)

# 打开 Google 首页
driver.get("https://www.google.com")

# 查找搜索框
search_box = driver.find_element(By.NAME, "q")
search_box.send_keys("Python Selenium")

# 提交搜索
search_box.submit()

# 关闭浏览器
driver.quit()

显式等待

显式等待允许你设置特定的条件,直到条件满足才继续执行。

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 启动 Chrome 浏览器
driver = webdriver.Chrome()

# 打开 Google 首页
driver.get("https://www.google.com")

# 显式等待直到搜索框可用
search_box = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.NAME, "q"))
)

# 输入搜索内容并提交
search_box.send_keys("Python Selenium")
search_box.submit()

# 关闭浏览器
driver.quit()


3. Selenium 的常用操作总结

  1. 启动浏览器: webdriver.Chrome() / webdriver.Firefox() 等。
  2. 打开网页: get() 方法。
  3. 查找元素: find_element()find_elements() 方法。
  4. 输入文本: send_keys() 方法。
  5. 模拟点击: click() 方法。
  6. 执行 JavaScript: execute_script() 方法。
  7. 等待元素加载: 隐式等待和显式等待。
  8. 关闭浏览器: quit() 方法。

4. 总结

通过本教程,你已经学习了如何使用 Python 和 Selenium 进行 Web 自动化操作。我们从基础的浏览器启动、元素查找、表单输入,到模拟点击和等待机制,都做了详细的讲解。

在实际应用中,Selenium 能够帮助我们实现 Web 应用程序的自动化测试和数据抓取等功能。希望你能通过本教程快速入门,动手尝试不同的自动化场景。

如果你有任何问题,欢迎在评论区留言,我会尽快回复你!


这篇教程可以帮助初学者理解和掌握 Python + Selenium 的基础内容。如果有更复杂的需求,你也可以根据实际情况扩展内容。


网站公告

今日签到

点亮在社区的每一天
去签到