当前位置: 首页 > 面试题库 >

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

孔琪
2023-03-14
问题内容

我想使用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无法正常工作:

  • 我无法在ChromeDriver中打开新标签页

你可以做什么,作为一种解决方法,是在新标签中打开一个链接,然后 切换到一个新的窗口 使用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()将在新打开的标签页中执行。



 类似资料:
  • 问题内容: 因此,我试图在WebDriver内的新选项卡上打开网站。我想这样做,因为使用PhantomJS为每个网站打开一个新的WebDriver大约需要3.5秒,所以我想提高速度… 我正在使用多进程python脚本,并且我想从每个页面中获取一些元素,因此工作流程如下: 但是我找不到任何方法来实现这一目标。 这是我正在使用的代码。网站之间永远都需要花时间,我需要它很快。允许使用其他工具,但是我不知

  • 我想使用Selenium WebDriver和Python在不同的选项卡中打开相当多的URL。 在我的代码中有什么可以改变的地方来让新的URL在new选项卡中打开吗? 谢谢你的帮助!

  • 问题内容: 在chrome中,这会在新标签页中打开: 这会在新窗口中打开(但我也想在新标签页中打开它: 这可行吗? 问题答案: 您不能直接控制它,因为它是由Internet Explorer用户控制的选项。 使用Window.open使用不同的窗口名称打开页面将在新的浏览器窗口(如弹出窗口)中打开,或者在用户配置的浏览器中打开。 编辑: 更详细的解释: 1. 在现代浏览器中,window.open

  • 我正在尝试打开一个新选项卡,但前一个选项卡仍处于打开状态。我无法打开新选项卡。它一直在同一个选项卡中打开URL。我也尝试过使用Actions。

  • 很好的一天。请您通过打开Chrome浏览器创建一个新选项卡,在其中执行一些操作,关闭新选项卡,然后返回第一个选项卡并继续在其中工作,来判断Selenium VBA是否可行? 我用以下代码打开浏览器:

  • 问题内容: 我希望能够在Selenium 2中的新选项卡中打开链接。我也想在与页面完成交互后关闭该选项卡。这怎么可能,如果我有一个的标签? 我将Selenium 2的Java API与运行在Firefox 4上的Firefox驱动程序结合使用。 问题答案: 目前,Selenium WebDriver API没有任何处理选项卡的方法。在我希望看到一种语言绑定(例如Java)的实现之前,该项目确实需要