📜  使用 selenium (1)

📅  最后修改于: 2023-12-03 15:36:34.252000             🧑  作者: Mango

使用 Selenium

Selenium 是一套自动化测试工具,可以用来模拟用户在浏览器中的操作。我们可以利用 Selenium 来处理各种 Web 测试任务,例如自动处理表单、执行网站用户界面功能测试等等。

安装

Selenium 可以通过 pip(Python 包管理器)进行安装,使用如下命令:

pip install selenium
配置

在使用 Selenium 之前,我们需要下载相应的浏览器驱动。Selenium 支持的浏览器包括 Chrome、Firefox、Safari 等。

例如,如果我们需要使用 Chrome 来进行测试,需要先下载 Chrome 对应的驱动,然后将该驱动路径添加到系统环境变量中,如:

import os
from selenium import webdriver

# 定义 Chrome 驱动路径
chromedriver = "/path/to/chromedriver"

# 将路径添加到系统环境变量
os.environ["webdriver.chrome.driver"] = chromedriver

# 创建一个 Chrome 的 Webdriver 实例
driver = webdriver.Chrome(chromedriver)
使用
打开网页

Selenium 可以使用 get() 方法访问指定的 URL,例如:

driver.get("https://www.baidu.com")
查找元素

在 Selenium 中,所有的操作都是基于 Web 元素来进行的。Selenium 提供了许多查找元素的方法,例如:

  • find_element_by_id(id):通过 ID 查找元素。
  • find_element_by_name(name):通过名称查找元素。
  • find_element_by_xpath(xpath):通过 XPath 查找元素。
  • find_element_by_class_name(class_name):通过类名查找元素。
  • find_element_by_tag_name(tag_name):通过标签名查找元素。
  • find_element_by_css_selector(selector):通过 CSS 选择器查找元素。

例如我们可以通过以下方式来查找百度搜索框:

search_box = driver.find_element_by_id("kw")
操作元素

一旦找到了目标元素,我们就可以对其进行操作,例如:

  • send_keys(keys):往输入框中输入文本。
  • click():模拟鼠标点击事件。
  • submit():提交表单。

例如,我们可以通过以下代码,向百度搜索框输入「Selenium 教程」并提交:

search_box = driver.find_element_by_id("kw")
search_box.send_keys("Selenium 教程")
search_box.submit()
等待元素加载

由于 Web 页面的加载时间和网络状况,有些元素可能需要较长时间才能加载成功,这时候可以使用 WebDriverWait 方法来等待元素加载。例如,以下代码会等待 10 秒钟,直到搜索结果列表出现后再进行操作:

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

# 等待搜索结果列表加载
element = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.ID, "content_left"))
)
关闭浏览器

在测试完成后,我们需要关闭浏览器以释放资源。可以使用 quit() 方法来关闭浏览器:

driver.quit()

上述就是 Selenium 的基本用法,更多详细内容可以参考官方文档。