如何强制通过javascript调用的链接在新选项卡中打开

时间:2018-04-01 16:58:40

标签: python selenium-webdriver

我正在尝试通过javascript打开一个打开超链接的网页,如下所示。我正在使用Selenium和Python。

<a href="javascript:openlink('120000020846')">
<subtitle>Blah blah blah</subtitle>
</a>

使用XPATH,我可以使用以下Python代码打开超链接。

driver = webdriver.Chrome()
xpath = '//a/subtitle[contains(text(),"Blah blah blah")]'
link_to_open = driver.find_element(By.XPATH,xpath);
link_to_open.click()

但是,链接会在同一选项卡中打开。这不是我想要的,因为我希望链接在新标签中打开,以便我可以保留当前页面的信息并继续处理其余的链接。

如果有人可以提供一些指示,我会非常感激吗?

非常感谢你! :)

1 个答案:

答案 0 :(得分:0)

您可以通过ActionChains实施强制在新标签页中打开链接,如下所示:

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys

action = ActionChains(driver)
link_to_open = driver.find_element(By.XPATH, "//a/subtitle[contains(.,'Blah blah blah')]")
action.key_down(Keys.CONTROL).click(link_to_open).key_up(Keys.CONTROL).perform()