当前位置: 首页 > news >正文

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

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()

http://www.jsqmd.com/news/54258/

相关文章:

  • CSS基础--面向后端需要了解的前端知识
  • 2025年下半年江苏煤矿智能化/智能煤流系统开发公司综合推荐指南
  • 字符编码和文件操作
  • 2025 全球温度循环试验箱厂家推荐!细分场景定制方案与成本分析
  • 别用“设计感”掩盖无知:从一次 null == 0 的事故说起
  • 2025年下半年江苏智能煤流系统、煤矿智能化系统开发公司综合推荐指南
  • 使用Postman进行接口测试、接口自动化和集成CI/CD
  • 信创环境下的一体化全栈智能运维
  • AI训练素材与数据集供应商推荐:卓特视觉的专业解决方案
  • 2025年国内靠谱的AGV货架生产厂家推荐榜单,立体货架/重载货架/中型货架/组合式货架/流利式货架/背网货架AGV货架批发厂家推荐榜单
  • 28223E2125263E2121203E212424384722B0开
  • 【251128】CF2164 Div.1+2 vp 总结
  • 2025长沙公务员面试培训机构排名,速看!,湖南长沙公务员面试技术引领与行业解决方案解析
  • 2025年四川成都奖杯奖牌定制、奖章证书定制、奖杯定制、水晶奖杯定制、奖牌定制品牌厂家企业推荐top5指南
  • 2025年工业冷风机车间降温技术全解析,铁皮棚车间降温/焊装车间通风降温/压铸车间通风降温/机械厂车间降温工业冷风机厂商推荐排行
  • 2025年长沙公务员面试机构排行榜:前五强揭晓,湖南长沙公务员面试排行优质品牌选购指南
  • 车间降温新方案:工业冷风机2025年趋势,五金车间通风降温/焊装车间通风降温/钢构车间通风降温/制造业车间通风降温工业冷风机企业口碑推荐
  • 详细介绍:【k8s】Deployment、StatefulSet、DaemonSet
  • 2025非遗新中式品牌排行TOP榜,这些品牌正走红,非遗新中式推荐排行色麦新中式层层把关品质优
  • 2025年高定服装加盟品牌市场占有率排行,高定服装加盟采购色麦新中式市场认可度高
  • 2025国风源头排行榜发布,这些品牌上榜!,国风源头推荐排行技术领航者深度解析
  • 2025年工业冷风机维护保养全攻略,延长设备使用寿命,铁皮房车间降温/高大车间厂房通风降温/炼钢车间通风降温工业冷风机公司口碑推荐
  • 2025年新中式高定服装加盟五大推荐品牌,新中式高定服装加盟批发精选优质厂家
  • 2025年靠谱的四川变形缝_变形缝厂家实力及口碑推荐榜
  • 2025年国内正规的AGV货架批发厂家找哪家,悬臂货架/高位货架/精益管料架/贯通货架/牛脚式货架/可调节货架/冷库货架AGV货架产品选哪家
  • HTML基础--面向后端
  • 2025年长沙公务员面试选哪家?最新排名出炉,湖南长沙公务员面试赋能企业生产效率提升与成本优化
  • 2025年工业冷风机车间降温技术全解析,电炉车间通风降温/钢结构车间夏季降温/机械厂车间降温/电镀车间通风降温工业冷风机生产厂家哪家好
  • 中考前最后一个假期!选这些数学老师带你冲刺寒假
  • 2025中国HR SaaS厂商AI进度大盘点