是否有硒取消的任何功能?
目标:打开新标签,例如" 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,它可以工作。不知何故,硒似乎会阻止任何打开新标签的方法。