硒:Ctrl +单击以类似人的方式在新选项卡中打开

时间:2019-03-04 17:23:31

标签: python selenium selenium-webdriver

有问题:

我的目标是对结果列表进行迭代,并在新选项卡中打开每个结果,执行测试并关闭相关的驱动程序,然后再次从列表中的下一个开始。我在Ubuntu 18.04上使用 firefox 网络驱动程序

看到了很多类似的帖子,但其中一些的日期是2014年,2015年,答案似乎已经过时了。我了解到硒改变了他的政策关于多个标签中的导航。另外,**没有答案符合正常的用户行为。 **

这是我在相关文章中找到的解决方案:

1)使用send_keys方法,例如:

driver.find_element_by_tag_name("body").send_keys(Keys.CONTROL + 't')

但是,如今看来似乎无法正常工作。

2)使用具有key_down和Key_up的actionsChains:

ActionChains(driver) \
.move_to_element(element) \
.pause(uniform(0,2)) \
.key_down(Keys.CONTROL)\
.click(element) \
.key_up(Keys.CONTROL)\
.perform()

我注意到此组合的作用类似于右键单击,但没有在新标签页中打开。

注意:为了避免愚蠢的错误,还使用SHIFT和COMMAND代替CONTROL尝试了这两种方法。

注意:此方法正是该问题被视为“重复”的方法,但不再起作用。 ->给出的结果完全相同,就像单击鼠标右键 cf:Opening a new tab using Ctrl + click combination in Selenium Webdriver

3)使用“ execute_Script”方法通过js打开新窗口:

new_page_url=element.get_attribute('href')
driver.execute_script("window.open('"+new_page_url+"')")

此解决方案有效,但是对于互联网用户而言,这不是正常行为。

问题

1)就像我认为的前两个解决方案已经过时一样,是否有任何新方法可以通过使用快捷键控件并单击来在新选项卡中打开链接,就像普通用户一样?

2)如果我错了,并且那些解决方案仍然可用,为什么它会给我这种意想不到的行为?

0 个答案:

没有答案