Python使用helium库在浏览器中打开新标签页失败如何解决?
Helium打开新标签页实现方案
原有press(CONTROL + 'T')写法不生效的原因是:Helium的press()接口默认作用于当前页面内的可聚焦元素,无法触发浏览器级别的全局快捷键。可以通过以下两种方式实现需求:
方案1:执行JS打开新标签页(兼容性最佳)
from helium import * # 启动初始浏览器页面 start_chrome('www.google.com') # 获取Helium底层封装的Selenium驱动 driver = get_driver() # 执行JS打开新标签页,第二个参数为新标签页要打开的地址,留空则打开空白页 driver.execute_script("window.open('https://www.example.com');") # 切换到新打开的标签页进行后续操作 switch_to.window(driver.window_handles[-1])
方案2:通过Selenium ActionChains触发快捷键
如果你确实需要使用快捷键方式实现,可以直接调用底层Selenium的动作链接口触发全局按键:
from helium import * from selenium.webdriver import ActionChains from selenium.webdriver.common.keys import Keys start_chrome('www.google.com') driver = get_driver() # 触发Ctrl+T打开新标签页 ActionChains(driver).key_down(Keys.CONTROL).send_keys('t').key_up(Keys.CONTROL).perform() # 切换到新打开的标签页 switch_to.window(driver.window_handles[-1])
提示:如果使用Mac系统,将上述代码中的CONTROL/Keys.CONTROL替换为COMMAND/Keys.COMMAND即可
内容的提问来源于stack exchange,提问作者Andrej
相关产品推荐
相关产品推荐

