Ctrl + t - 打开新标签在Selenium + Firefox Python中不起作用



是否有硒取消的任何功能?

目标:打开新标签,例如" Ctrl T"

环境:

  • 窗口7
  • Firefox 68
  • Python 3.7

都没有两个脚本的反应
# 1 
dr.find_element_by_tag_name('body').send_keys(Keys.CONTROL + 't')
# 2 
ActionChains(dr).key_down(Keys.CONTROL).send_keys('t').key_up(Keys.CONTROL).perform()

一些教程视频3〜4yrs显示以下脚本有效,但在我的情况下

问题是新的壁虎驱动程序(木偶(,有两个上下文:

1(Chrome(浏览器本身(

2(内容(网页内容(

您需要在哪个上下文中告诉硒。

对我(Python 3.6,Selenium 3.141,壁虎驱动器0.26.0,Firefox 75(

driver.execute("SET_CONTEXT", {"context": "chrome"})
    urlbar=driver.find_element('id','urlbar')
    urlbar.send_keys(Keys.CONTROL, "t")
driver.execute("SET_CONTEXT", {"context": "content"})

您可以通过以下方式打开一个新标签:

  • sendkey方法

    Mac OS

    dr.find_element_by_tag_name('body').send_keys(Keys.COMMAND + 't')

    其他OS

    dr.find_element_by_tag_name('body').send_keys(Keys.CONTROL + 't')

  • 动作方法

    ActionChains(dr).key_down(Keys.CONTROL).send_keys('t').key_up(Keys.CONTROL).perform()

  • executescript方法

    dr.execute_script("window.open('','_blank');")

    或特定URL

    dr.execute_script("window.open('URL');")

- 更新 -

如果您的问题要切换到特定标签,请执行此操作:

在执行您的操作之前,请使用:

处理当前选项卡
first_tab = dr.window_handles[0]

然后执行您的操作,这将带入新标签。可能.click动作。

添加一些睡眠以等待加载新标签dr.implicitly_wait(....)

用:

处理新的选项卡窗口
second_tab = dr.window_handles[1]

现在您可以转到您想要选项卡:

dr.switch_to.window(first_tab / second_tab)

希望这会有所帮助。

我尝试了所有3种方法。

什么都没有发生:没有新标签。

我信任窗口。开机方法,因为如果我使用_self而不是_blank,它可以工作。不知何故,硒似乎会阻止任何打开新标签的方法。

最新更新