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

时间:2019-07-19 06:28:21

标签: python selenium selenium-webdriver web-scraping selenium-chromedriver

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

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. 

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

P.S .:这不是在新标签页中打开的链接,它不是要在新标签页上打开的元素,因此请勿将其标记为重复。

1 个答案:

答案 0 :(得分:0)

这应该在Java中有效(希望您可以用Python编写此逻辑),

To open a link in new tab

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);

Switch to new tab,

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