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

升级Safari 17与iOS Sonoma后Selenium点击事件失效求助

解决Safari 17 + iOS Sonoma 14.1下Selenium元素点击失效的问题

针对你遇到的问题,这里有几个实测有效的解决方案:

1. 强制让Safari保持前台运行

从你更新的信息来看,问题和Safari是否在前台、是否有其他应用干扰直接相关。可以在测试代码中加入强制激活Safari的逻辑:

  • 用Python调用AppleScript激活Safari:
import subprocess
subprocess.run(["osascript", "-e", 'tell application "Safari" to activate'])
  • 或者直接通过Selenium执行JS调用系统脚本(仅限Mac环境):
driver.execute_script('''
    const app = Application.currentApplication();
    app.includeStandardAdditions = true;
    app.doShellScript('osascript -e "tell application \\"Safari\\" to activate"');
''')

执行点击操作前先运行这段代码,确保Safari窗口处于最上层。

2. 检查并更新自动化权限设置

Sonoma系统的隐私权限管控更严格,可能需要重新配置:

  • 打开Safari的「开发」菜单,确认「允许远程自动化」已勾选(如果没看到开发菜单,去偏好设置-高级里开启)
  • 打开系统设置-隐私与安全性-自动化,找到你的测试程序(比如Python),确保它有控制Safari的权限

3. 升级Selenium到最新稳定版

Selenium 4.14.0可能对Safari 17的兼容存在小问题,尝试升级到最新版本:

pip install --upgrade selenium

后续版本针对Safari 17的自动化做了不少适配修复。

4. 改用ActionChains模拟点击

替换原生的elem.click(),用ActionChains模拟完整的鼠标操作流程:

from selenium.webdriver.common.action_chains import ActionChains

elem = driver.find_element(By.XPATH, Mylocator)
ActionChains(driver).move_to_element(elem).click().perform()

这种方式更接近真实用户的点击行为,可能绕过Safari的事件拦截机制。

5. 调整Safari隐私设置

部分隐私选项会干扰自动化事件触发:

  • 打开Safari偏好设置-隐私,关闭「防止跨站跟踪」和「阻止所有Cookie」(测试完成后可以再恢复)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 16:27:35