全网整合营销服务商

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

免费咨询热线: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 


相关文章: 电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?  建站之星免费版是否永久可用?  网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?  如何快速搭建支持数据库操作的智能建站平台?  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  建站主机与服务器功能差异如何区分?  如何在建站之星网店版论坛获取技术支持?  台州网站建设制作公司,浙江手机无犯罪记录证明怎么开?  公司网站设计制作厂家,怎么创建自己的一个网站?  如何通过wdcp面板快速创建网站?  如何快速搭建高效可靠的建站解决方案?  如何在万网自助建站中设置域名及备案?  建站主机功能解析:服务器选择与快速搭建指南  制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?  php8.4新语法match怎么用_php8.4match表达式替代switch【方法】  建站之星24小时客服电话如何获取?  广东专业制作网站有哪些,广东省能源集团有限公司官网?  如何在阿里云完成域名注册与建站?  大连网站制作公司哪家好一点,大连买房网站哪个好?  成都网站制作公司哪家好,四川省职工服务网是做什么用?  济南企业网站制作公司,济南社保单位网上缴费步骤?  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  如何用好域名打造高点击率的自主建站?  常州自助建站费用包含哪些项目?  制作表格网站有哪些,线上表格怎么弄?  枣阳网站制作,阳新火车站打的到仙岛湖多少钱?  广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?  h5网站制作工具有哪些,h5页面制作工具有哪些?  小型网站建站如何选择虚拟主机?  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?  如何通过商城免费建站系统源码自定义网站主题?  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  非常酷的网站设计制作软件,酷培ai教育官方网站?  建站之星微信建站一键生成小程序+多端营销系统  如何通过西部建站助手安装IIS服务器?  网站设计制作企业有哪些,抖音官网主页怎么设置?  山东云建站价格为何差异显著?  整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?  如何续费美橙建站之星域名及服务?  高性能网站服务器配置指南:安全稳定与高效建站核心方案  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  建站之星体验版:智能建站系统+响应式设计,多端适配快速建站  宝塔建站后网页无法访问如何解决?  沈阳制作网站公司排名,沈阳装饰协会官方网站?  C#如何序列化对象为XML XmlSerializer用法  网站制作网站,深圳做网站哪家比较好?  如何在阿里云香港服务器快速搭建网站?  如何通过商城自助建站源码实现零基础高效建站? 

您的项目需求

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