Selenium Firefox(Python3.6+MacBook):除send_keys外打开新标签页的方法
解决Mac上Selenium操作Firefox时COMMAND组合键失效的问题
我之前在Mac环境下用Selenium操作Firefox时,也碰到过一模一样的情况——单个方向键(比如Keys.DOWN)能正常工作,但Cmd+T这类COMMAND组合键就是没反应。给你几个亲测有效的解决办法:
方法一:用JavaScript直接打开新标签页(最稳定)
绕开键盘模拟的坑,直接通过JS调用浏览器的窗口API,这个方法几乎不受浏览器配置或驱动版本的影响:
# 打开空白新标签页 driver.execute_script("window.open('about:blank', '_blank');") # 切换到新打开的标签页(如果需要操作新标签内容的话) driver.switch_to.window(driver.window_handles[-1])
如果要直接打开指定URL的新标签,把代码改成这样:
driver.execute_script("window.open('https://your-target-url.com', '_blank');") driver.switch_to.window(driver.window_handles[-1])
方法二:用ActionChains分步模拟按键操作
有时候直接用send_keys(Keys.COMMAND + "t")会因为按键状态未正确触发而失效,改用ActionChains分步模拟按下、输入、释放的过程,更贴近真实人工操作,能解决不少识别问题:
from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.common.keys import Keys # 初始化动作链 action = ActionChains(driver) # 模拟按下COMMAND键→输入t→释放COMMAND键的完整流程 action.key_down(Keys.COMMAND).send_keys('t').key_up(Keys.COMMAND).perform()
方法三:检查版本兼容性
如果上面两种方法都没用,大概率是Firefox浏览器和geckodriver驱动的版本不匹配导致的键盘事件异常。建议:
- 确认你的geckodriver是对应Firefox版本的最新稳定版
- 尽量保持Firefox和geckodriver的版本同步更新
内容的提问来源于stack exchange,提问作者Blaszard
相关产品推荐
相关产品推荐

