是否有任何功能被Selenium取消?
**目标:**打开新选项卡,如“Ctrl + t”
环境:
- 窗口7
- 火狐68
- Python 3.7语言
以下两个脚本均无React:
# 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~ 4年前显示下面的脚本工作,但不是在我的情况
3条答案
按热度按时间bjp0bcyl1#
这个问题是新的壁虎司机(提线 puppet ),有两个背景:
1)Chrome(浏览器本身)
2)内容(网页内容)
您需要告诉Selenium您希望在哪个上下文中发送操作。
对于我来说(Python 3.6,Selenium 3.141,gecko驱动0.26.0,firefox 75),这段代码可以工作:
iibxawm42#
您可以通过以下方式打开新选项卡:
Mac操作系统
第一个月
其他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()
dr.execute_script("window.open('','_blank');")
或使用特定url
dr.execute_script("window.open('URL');")
如果您的问题是要切换到特定选项卡,请执行以下操作:
在执行操作之前,使用以下命令处理当前选项卡:
然后做你的动作,这将带来一个新的标签。可能
.click
行动。添加一些睡眠以等待加载新选项卡
dr.implicitly_wait(....)
。处理新选项卡窗口:
现在您可以切换到您想要的选项卡:
希望这个有用。
kdfy810k3#
我尝试了所有3种方法。
什么也没发生:无新选项卡。
我信任window.open方法,因为如果我使用_self而不是_blank,它就可以工作。不知何故,Selenium似乎阻止了任何打开新选项卡的方法。