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

Playwright自动化注册时无法勾选复选框,点击后跳转新标签页

解决方案

针对你遇到的复选框点击后跳转新标签页但未勾选的问题,可尝试以下几种解决方法:

方法1:直接通过JavaScript修改DOM状态

跳过点击操作,直接设置复选框的勾选状态并更新父元素的class,避免触发跳转事件:

# 定位复选框的input元素
checkbox_input = page.locator('//div[@class="sw-checkbox ng-tns-c689136354-0 invalid"]//input')
# 用JavaScript设置勾选状态并更新父元素class
page.evaluate("""(input) => {
    input.checked = true;
    input.closest('.sw-checkbox').classList.remove('invalid');
    input.closest('.sw-checkbox').classList.add('valid');
}""", checkbox_input)

方法2:点击复选框的input元素而非label

label元素可能绑定了跳转链接的点击事件,直接点击内部的input复选框可触发勾选且不打开新标签页:

# 直接点击input元素完成勾选
page.locator('//div[@class="sw-checkbox ng-tns-c689136354-0"]//input').click()

方法3:阻止label点击时的默认跳转行为

若必须点击label,可通过Playwright触发点击并阻止默认跳转行为:

label_locator = page.locator('//div[@class="sw-checkbox ng-tns-c689136354-0"]//label')
# 绑定一次性事件阻止默认行为后再点击
page.evaluate("""(label) => {
    label.addEventListener('click', (e) => e.preventDefault(), {once: true});
    label.click();
}""", label_locator)

替换原代码中处理复选框的部分,使用上述任意一种方法即可完成勾选,无需额外处理新标签页的关闭操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 17:15:08