一尘不染

Selenium不会在新标签页(Python和Chrome)中打开新的URL

selenium

我想使用Selenium WebDriver和Python在不同的选项卡中打开很多URL。

我不确定出了什么问题:

driver = webdriver.Chrome()
driver.get(url1)
time.sleep(5)
driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL+'t')
url2 = 'https://www.google.com'
driver.get(item2)

我查阅了教程,在我看来,这段代码应该可以实现我想要的功能。实际发生的情况是打开浏览器,打开url1,打开一个新标签, 但是
url2然后加载到原始标签中,而不是新标签中(即使新标签似乎是活动的)。

(我使用的是Chrome,因为使用Firefox时我根本无法加载任何URL。Firefox可以打开,但无法获取所请求的URL。我试图找到一种解决方法,但无济于事。)

我可以更改代码中的任何内容以在新标签页中打开新的URL吗?

谢谢你的帮助!


阅读 1364

收藏
2020-06-26

共1个答案

一尘不染

ChromeDriver中存在一个错误,导致ctrl / command + T无法正常工作:

你可以做什么,作为一种解决方法,是在新标签中打开一个链接,然后 切换到一个新的窗口 使用switch_to.window()。工作样本:

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

driver = webdriver.Chrome()
driver.get("https://www.google.com")

# open a link in a new window
actions = ActionChains(driver)
about = driver.find_element_by_link_text('About')
actions.key_down(Keys.CONTROL).click(about).key_up(Keys.CONTROL).perform()

driver.switch_to.window(driver.window_handles[-1])
driver.get("https://stackoverflow.com")

现在,最后一个操作driver.get()将在新打开的标签页中执行。

2020-06-26