Selenium是一个用于自动化Web应用程序测试的开源工具集,它提供了一组工具和库,使开发人员能够模拟用户与Web应用程序的交互,以进行自动化测试、Web应用程序的自动化操作和数据提取。Selenium支持多种编程语言,包括Python、Java、C#等,但最常见的用法之一是使用Python进行Web自动化。

一、组件工具

主要组件和工具包括:

  1. Selenium WebDriver:这是Selenium的核心组件,它提供了API来编写脚本和程序,以模拟用户在Web浏览器中的操作。您可以使用WebDriver来打开浏览器、导航到网页、查找和操作页面上的元素,以及执行各种操作,如单击、输入文本等。
  2. Selenium IDE:一个浏览器插件,用于录制和回放用户在浏览器中的操作,以便创建自动化测试脚本。Selenium IDE通常用于快速生成测试脚本,但它的功能有限,主要用于初步测试脚本的创建。
  3. Selenium Grid:Selenium Grid允许在多个计算机上并行运行测试,这对于大规模测试和跨不同浏览器和操作系统的测试非常有用。它允许将测试任务分发到多个节点,并从中心控制台监视和管理。
  4. Selenium支持多种浏览器:Selenium支持各种主要Web浏览器,包括Chrome、Firefox、Safari、Edge等。每个浏览器都有对应的浏览器驱动程序,用于与浏览器进行通信和控制。
  5. 多语言支持:Selenium支持多种编程语言,使开发人员可以使用自己熟悉的语言来编写测试脚本。常见的支持语言包括Python、Java、C#、Ruby等。

Selenium通常用于自动化测试、网站数据抓取、Web应用程序的自动化操作和用户界面(UI)测试。开发人员和测试人员可以使用Selenium来自动执行各种任务,如功能测试、性能测试、回归测试等,以确保Web应用程序的质量和稳定性。

要开始使用Selenium,您需要安装相应的浏览器驱动程序、选择编程语言并编写自动化脚本来模拟用户操作。这样,您可以执行测试、执行Web任务或自动执行其他与Web应用程序相关的任务。

二、 基本使用

  1. 安装Selenium :在终端中使用pip安装Selenium:
pip install selenium
  1. 导入必要的库:
from selenium import webdriver
  1. 创建WebDriver对象:您可以使用不同的浏览器驱动程序创建WebDriver对象,如Chrome、Firefox、Edge等。
driver = webdriver.Chrome()  # 使用Chrome浏览器
  1. 打开网页:
driver.get("https://www.example.com")  # 打开网页
  1. 定位元素:可以使用各种方法来定位页面元素,如ID、名称、XPath、CSS选择器等。
element = driver.find_element_by_id("element_id")  # 通过ID定位元素
  1. 与元素交互:
element.click()  # 单击元素
element.send_keys("Hello, World!")  # 在输入框中输入文本
  1. 等待元素加载:使用显式等待等待元素出现或满足特定条件。
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

element = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.ID, "element_id"))
)
  1. 浏览器操作:
driver.back()  # 后退
driver.forward()  # 前进
driver.refresh()  # 刷新页面
  1. 处理多窗口和框架:
driver.switch_to.window(driver.window_handles[1])  # 切换到新窗口
driver.switch_to.default_content()  # 切回主文档
  1. 截图:
driver.save_screenshot("screenshot.png")  # 保存屏幕截图
  1. 关闭和退出:
driver.close()  # 关闭当前窗口
driver.quit()  # 退出驱动程序

二 、自动登录

以下代码实现了自动打开浏览器,提交用户密码登录的逻辑,如果需要其他处理逻辑,可自行添加

import time

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


# 初始化ChromeDriver实例
driver = webdriver.Chrome()
# 导航到目标网站
driver.get("http://网站.com")

# 找到并输入用户名和密码
username = driver.find_element(By.CSS_SELECTOR, '.selectBox input[placeholder="请输入账号"]')
password = driver.find_element(By.CSS_SELECTOR, '.selectBox input[placeholder="请输入密码"]')
# 输入用户名,密码
username.send_keys("账户")
password.send_keys("密码")
#登录
button = driver.find_element(By.CSS_SELECTOR, ".submitButtom")
button.click()
# 测试是否成功 程序结束推出
time.sleep(100)

# 关闭浏览器
driver.quit()

Selenium 还引入了更多功能,如改进的相对定位、集成DevTools协议、通过JavaScript执行操作等。