尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

自动化测试框架Selenium的基本知识和简单实战

自动化测试框架Selenium的基本知识和简单实战
📅 发布时间:2026/6/21 7:37:07

Selenium 核心组件

  • Selenium WebDriver:是 Selenium 的核心,直接控制浏览器,与浏览器进行交互,支持不同浏览器的驱动(如 ChromeDriver、GeckoDriver 等)。
  • Selenium IDE:是一个基于浏览器的插件,用于录制和回放测试脚本,方便快速创建简单的测试用例。
  • Selenium Grid:用于分布式测试,可以在多个浏览器和操作系统上并行运行测试,提高测试效率。

元素定位

属性 函数
CLASS find_element(by=By.CLASS_NAME, value=‘’)
XPATH find_element(by=By.XPATH, value=‘’)
LINK_TEXT find_element(by=By.LINK_TEXT, value=‘’)
PARTIAL_LINK_TEXT find_element(by=By.PARTIAL_LINK_TEXT, value=‘’)
TAG find_element(by=By.TAG_NAME, value=‘’)
CSS find_element(by=By.CSS_SELECTOR,value=‘’)
ID find_element(by=By.ID, value=‘’)

常用操作

浏览器操作

  • 打开网页:driver.get("https://www.example.com")
  • 最大化窗口:driver.maximize_window()
  • 最小化窗口:driver.minimize_window()
  • 关闭当前窗口:driver.close()
  • 关闭所有窗口并退出驱动:driver.quit()
  • 前进:driver.forward()
  • 后退:driver.back()
  • 网页标题:driver.title
  • 网页网址:driver.current_url
  • 网页名称:driver.name
  • 切换窗口:
# 获取打开的多个窗口句柄
windows = driver.window_handles
# 切换到当前最新打开的窗口
driver.switch_to.window(windows[-1])
  • 截图:driver.get_screenshot_as_file("url")

元素操作

  • 输入文本:element.send_keys("文本内容")
  • 点击元素:element.click()
  • 获取元素文本:text = element.text
  • 获取元素属性值:attribute_value = element.get_attribute("属性名")

等待操作

  • 强制等待:使用time.sleep(秒数),让程序暂停指定的时间,缺点是不够灵活,无论元素是否加载完成都等待固定时间。
import time
time.sleep(3)
  • 隐式等待:driver.implicitly_wait(秒数),设置全局等待时间,在查找元素时,如果元素未立即出现,会在指定时间内不断尝试查找,直到找到元素或超时。
driver.implicitly_wait(10)
  • 显式等待:使用WebDriverWait类,根据特定条件等待元素出现、可点击、可见等。
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
wait = WebDriverWait(driver, 10)
element = wait.until(EC.presence_of_element_located((By.ID, "element_id")))

实战案例

以登录一个简单的 Web 应用为例:

from selenium import webdriver
from selenium.webdriver.common.by import By
# 初始化浏览器驱动
driver = webdriver.Chrome()
# 打开登录页面
driver.get("https://www.example.com/login")
# 定位用户名和密码输入框及登录按钮
username_input = driver.find_element(By.ID, "username")
password_input = driver.find_element(By.ID, "password")
login_button = driver.find_element(By.ID, "login-button")
# 输入用户名和密码
username_input.send_keys("your_username")
password_input.send_keys("your_password")
# 点击登录按钮
login_button.click()
# 等待页面加载完成(可根据实际情况调整等待方式)
# 例如使用显式等待判断登录后的元素是否出现
# 关闭浏览器
driver.quit()

进阶技巧

6.1 处理 iframe

如果网页中存在 iframe,需要先切换到 iframe,再进行元素定位和操作。

# 切换到iframe
driver.switch_to.frame("iframe_id")
# 定位和操作元素
element = driver.find_element(By.ID, "element_in_iframe")
# 切换回默认内容
driver.switch_to.default_content()

6.2 处理弹窗

  • Alert 弹窗:用于处理浏览器原生的警告框、确认框、提示框等。
alert = driver.switch_to.alert
# 获取弹窗文本
alert_text = alert.text
# 点击确认按钮
alert.accept()
# 点击取消按钮
alert.dismiss()

相关新闻

  • 别用“设计感”掩盖无知:从一次 null == 0 的事故说起
  • AI训练素材与数据集供应商推荐:卓特视觉的专业解决方案
  • 2025年国内靠谱的AGV货架生产厂家推荐榜单,立体货架/重载货架/中型货架/组合式货架/流利式货架/背网货架AGV货架批发厂家推荐榜单

最新新闻

  • 字节跳动招聘骗局与内部人才绞肉机完整内幕白皮书
  • Llama 3本地实战:从代码精读、微调到vLLM部署全链路
  • 3-4个月实战入门AI Agent:从LangChain到ReAct的完整路径
  • 终极指南:3步快速解决Unity游戏语言障碍的完整方案
  • Ubuntu 16.04 LEMP部署实战:老旧系统稳定运维指南
  • 几何核方法:在非欧域上构建Matérn核的数学原理与实践

日新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号