BrowserStack环境下Firefox 86中Selenium右键菜单1秒内消失问题
Firefox 86右键菜单自动消失问题说明
问题根因
该问题是Firefox 86版本特有的Bug,与你使用的Selenium代码、BrowserStack平台无关,根因是该版本对contextmenu事件的触发逻辑做了未兼容自动化测试场景的调整:Selenium通过ActionChains执行右键点击操作后,页面焦点会被意外重置,导致弹出的上下文菜单被自动关闭。该问题仅影响86.x系列正式版本,85及更早版本、87及更新版本均不存在该问题。
可用解决方案
- 强制保留86版本测试的适配方案:执行右键点击前先注入JS禁用默认菜单自动关闭逻辑,代码示例如下:
# 执行右键点击前先运行这段JS driver.execute_script("document.body.addEventListener('contextmenu', e => e.preventDefault(), {once: true})") # 再执行原有的context_click操作 ActionChains(driver).context_click(target_element).perform()
- 版本切换方案:无强制86版本测试要求的情况下,直接切换到85.0.2或87.0及以上版本的Firefox即可,原有测试代码无需修改即可正常运行
- 规避右键操作方案:如果要操作的是浏览器原生右键菜单选项,可直接通过JS接口或快捷键实现对应功能,无需触发右键菜单。比如复制选中文本可直接调用
driver.execute_script("document.execCommand('copy')")
你当前排查不同Firefox版本的思路是正确的,该问题确实属于版本特异性问题,无需调整测试框架的通用配置。
内容的提问来源于stack exchange,提问作者Manjusha
相关产品推荐
相关产品推荐

