MacOS High Sierra下Safari12.1中Selenium DragAndDropBy失效求助
解决MacOS High Sierra下Safari 12.1拖拽无法释放的问题
我之前在处理老版本Safari的Selenium自动化时,也碰到过类似的拖拽释放失效问题,结合你用的系统和浏览器版本,这大概率是浏览器权限限制或者Selenium动作适配的问题,给你几个针对性的解决方案:
开启Safari远程自动化权限
Safari对自动化操作的限制比较严格,首先得开启开发者菜单并授权远程自动化:- 打开Safari,进入「偏好设置」>「高级」,勾选「显示开发菜单」
- 在顶部菜单栏的「开发」选项里,选择「允许远程自动化」
这一步是基础,没开启的话很多交互类操作都会出现异常。
改用精细化的动作链模拟拖拽
你用的dragAndDropBy方法在Safari 12.1里可能没有正确触发释放事件,可以试试分步模拟完整的拖拽流程,加入短暂停顿更贴近真实用户操作:Actions actionTest = new Actions(driver); actionTest.clickAndHold(dragMe) .moveByOffset(xCoOrdinate, yCoOrdinate) .pause(500) // 模拟真实拖拽时的停顿,帮助Safari识别动作 .release() .build() .perform();这种分步的动作链比
dragAndDropBy更明确,能更好地触发Safari的拖拽释放事件。检查系统辅助功能权限
Mac的安全设置可能会阻止Selenium控制浏览器,你需要授权相关程序:
进入「系统偏好设置」>「安全与隐私」>「隐私」>「辅助功能」,把运行测试脚本的程序(比如你的IDE、终端)添加到列表中,授权后重启Safari再测试。验证Selenium版本兼容性
Safari 12.1和Selenium 4.x系列的兼容性不太好,建议降级到Selenium 3.141.59这个稳定版本,这个版本对老版本Safari的支持更完善。
内容的提问来源于stack exchange,提问作者Harish
相关产品推荐
相关产品推荐

