首页 > 解决方案 > 如何使用 Selenium 和 Python 在新选项卡中打开新链接(单击网页中的元素后生成)?

问题描述

我必须尝试单击网页上的元素,并且我希望单击后的链接应在新选项卡中打开,这是代码片段:

browser.find_element_by_xpath('//*[@id="container"]/main/div/sec[1]').click()

# Above code open the link but in the same tab.

我尝试使用以下代码在新选项卡中打开它:

browser.find_element_by_xpath('//*[@id="container"]/main/div/sec[1]').send_keys(Keys.CONTROL + 't').click()

# But it's not working. 

如何在新标签页中打开它?

PS:这不是在新标签中打开的链接,它是要在新标签中打开的元素,所以不要将其标记为重复。

标签: pythonseleniumselenium-webdriverweb-scrapingselenium-chromedriver

解决方案


这应该在 Java 中工作(希望你可以用 Python 编写这个逻辑),

在新选项卡中打开链接

WebElement ele = wd.findElement(By.xpath(xpath));
Actions link = new Actions(wd);   
link.keyDown(Keys.COMMAND).click(ele).keyUp(Keys.COMMAND).build().perform();
Thread.sleep(5000);

切换到新标签,

Set<String> windows = wd.getWindowHandles();
wd.switchTo().window((String) windows.toArray()[1]);

推荐阅读