You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Playwright捕获SAP Web应用按钮报错:解析选择器遇意外令牌"48"

解决方案建议

错误原因

你的选择器#M0:48::btn[17]不符合CSS选择器规范,导致解析失败:

  • ID中的冒号(:)属于CSS特殊字符,未转义会触发解析错误
  • ::btn不是标准CSS伪元素,浏览器无法识别
  • [17]不是合法的索引选择语法

具体修复方案

方案1:基于按钮文本定位(最直观)

如果按钮的固定文本是「Get Variant」,可以直接用文本匹配选择器:

Sch_6 = page.wait_for_selector('button:text("Get Variant")')
Sch_6.click(timeout=60000)

注:如果按钮不是<button>标签,替换为实际标签(如<div>、<a>)即可

方案2:修正原选择器的语法错误

  1. 转义ID中的冒号:在Python字符串里需要用双反斜杠(\\)转义,或使用原始字符串前缀r
  2. 替换::btn为实际的按钮标签(如button)
  3. 用:nth-of-type(17)替代[17]表示第17个匹配元素

示例代码:

# 使用原始字符串避免转义问题
Sch_6 = page.wait_for_selector(r'#M0\:48 button:nth-of-type(17)')
Sch_6.click(timeout=60000)

方案3:通过浏览器开发者工具获取正确选择器

  1. 右键页面上的「Get Variant」按钮,选择「检查」打开开发者工具
  2. 在Elements面板中找到对应元素,右键选择「Copy」→「Copy CSS selector」或「Copy XPath」
  3. 将复制的选择器直接替换到代码中

内容的提问来源于stack exchange,提问作者adn60

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 05:48:20