全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Python和Selenium自动化测试_Web UI驱动与元素定位

Python+Selenium Web UI自动化测试核心是驱动可控、定位精准:需匹配WebDriver版本并用webdriver-manager自动管理,优先采用data-testid等语义化定位策略,配合显式等待和业务级断言确保稳定性与有效性。

Python + Selenium 做 Web UI 自动化测试,核心是“驱动可控、定位精准”

用 Python 调 Selenium 不是写脚本,而是模拟真实用户行为:启动浏览器、跳转页面、点按钮、填表单、断言结果。成败关键不在代码多华丽,而在 WebDriver 是否稳定启动,以及元素能不能每次都被准确定位到。

WebDriver 驱动要配对、要静默、要可复用

ChromeDriver 或 GeckoDriver 必须和本地浏览器版本匹配,否则常见报错如 session not createdunknown error: cannot find Chrome binary。推荐用 webdriver-manager 自动管理驱动版本:

  • 安装:pip install webdriver-manager
  • 初始化示例:
    from selenium import webdriver
    from webdriver_manager.chrome import ChromeDriverManager
    from selenium.webdriver.chrome.service import Service

    service = Service(ChromeDriverManager().install())
    driver = webdriver.Chrome(service=service)
  • 加选项提升稳定性:禁用图片加载、关闭自动化提示、设无头模式(CI 环境必需)

元素定位别只靠 ID 和 XPath,优先用语义化+健壮策略

ID 最快最稳,但现代前端常动态生成;纯 XPath 容易因 DOM 微调而断裂。建议按优先级组合使用:

  • 首选 data-testid 或 data-cy 属性:前端主动预留的测试钩子,语义清晰且不随样式变
  • 次选 name、aria-label、placeholder:表单控件天然具备,可读性强
  • 慎用绝对 XPath:如 /html/body/div[2]/form/input[1] —— 页面结构一改就失效
  • 善用相对 XPath + 文本/属性组合:如 //button[contains(text(), '提交') and @type='submit']

等待机制不是“加 time.sleep()”,而是让操作与页面状态对齐

元素没加载完就点击?JS 还没执行完就断言?这是脚本失败主因。Selenium 提供两类等待:

  • 显式等待(推荐):等某个条件成立再继续,比如元素可见、可点击、文本出现
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC

    wait = WebDriverWait(driver, 10)
    submit_btn = wait.until(EC.element_to_be_clickable((By.XPATH, "//button[text()='提交']")))
  • 隐式等待(少用):全局设置,仅影响 find_element 类方法,无法应对“元素存在但不可点”的场景

运行稳定≠测试有效,断言要覆盖业务逻辑而非仅页面标题

别只写 assert "登录成功" in driver.title。真实验证应贴近用户视角:

  • 检查关键元素是否显示:assert welcome_el.is_displayed()
  • 核对数据一致性:从表格中提取文本,与 API 返回或预期值比对
  • 捕获错误提示:error_msg = driver.find_element(By.CLASS_NAME, "error").text,再 assert 是否含关键词
  • 截图辅助排查:driver.save_screenshot("fail_login.png"),尤其在 CI 失败时非常有用

不复杂但容易忽略

写好一个用例不难,难的是所有用例能持续跑通。重点不在功能多全,而在驱动稳、定位准、等待对、断言真。把这四件事理清楚,UI 自动化才真正落地为质量保障环节。


# python  # html  # js  # 前端  # 浏览器  # session  # ai  # webdriver 


相关文章: 小建面朝正北,A点实际方位是否存在偏差?  清除minerd进程的简单方法  建站中国官网:模板定制+SEO优化+建站流程一站式指南  如何在建站之星网店版论坛获取技术支持?  如何快速搭建二级域名独立网站?  清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?  定制建站如何定义?其核心优势是什么?  建站之星如何保障用户数据免受黑客入侵?  广平建站公司哪家专业可靠?如何选择?  建站三合一如何选?哪家性价比更高?  招贴海报怎么做,什么是海报招贴?  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  一键网站制作软件,义乌购一件代发流程?  建站主机选购指南:核心配置与性价比推荐解析  如何通过山东自助建站平台快速注册域名?  如何在自有机房高效搭建专业网站?  实惠建站价格推荐:2025年高性价比自助建站套餐解析  如何在宝塔面板中修改默认建站目录?  韩国服务器如何优化跨境访问实现高效连接?  如何通过PHP快速构建高效问答网站功能?  制作网站的过程怎么写,用凡科建站如何制作自己的网站?  网站专业制作公司有哪些,做一个公司网站要多少钱?  微信小程序制作网站有哪些,微信小程序需要做网站吗?  高防服务器如何保障网站安全无虞?  高防服务器:AI智能防御DDoS攻击与数据安全保障  山东网站制作公司有哪些,山东大源集团官网?  长沙企业网站制作哪家好,长沙水业集团官方网站?  活动邀请函制作网站有哪些,活动邀请函文案?  如何高效完成独享虚拟主机建站?  北京制作网站的公司,北京铁路集团官方网站?  MySQL查询结果复制到新表的方法(更新、插入)  建站之星2.7模板:企业网站建设与h5定制设计专题  如何在云主机上快速搭建多站点网站?  寿县云建站:智能SEO优化与多行业模板快速上线指南  大连网站设计制作招聘信息,大连投诉网站有哪些?  如何在腾讯云服务器上快速搭建个人网站?  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  ,想在网上投简历,哪几个网站比较好?  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  如何用5美元大硬盘VPS安全高效搭建个人网站?  PHP 500报错的快速解决方法  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  Android自定义listview布局实现上拉加载下拉刷新功能  建站之星如何一键生成手机站?  制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?  攀枝花网站建设,攀枝花营业执照网上怎么年审?  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  高端智能建站公司优选:品牌定制与SEO优化一站式服务  制作宣传网站的软件,小红书可以宣传网站吗?  青岛网站建设如何选择本地服务器? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。