我想使用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吗?
谢谢你的帮助!
ChromeDriver中存在一个错误,导致ctrl / command + T无法正常工作:
你可以做什么,作为一种解决方法,是在新标签中打开一个链接,然后 切换到一个新的窗口 使用switch_to.window()。工作样本:
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()将在新打开的标签页中执行。
driver.get()