当前位置: 首页 > 知识库问答 >
问题:

如何在Selenium for Python上的。click()打开的新选项卡上使用Driver.current_url

薛兴言
2023-03-14

我正在编写一个python脚本,它使用BeautifulSoup进行web Scrain,然后使用Selenium进行站点导航。在使用链接上的。click()导航到另一个站点后,我想使用。current_url来获取用于beautiful Soup的站点url。问题是。click()在一个新选项卡中打开链接,所以当我使用current_url时,我得到的是原始站点的url。

我试着用:

second_driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + Keys.TAB)

来更改选项卡,但它对current_url函数没有影响,所以它不起作用。

second_driver = webdriver.Firefox()
second_driver.get(<the original url>)

time.sleep(1)

second_driver.find_element_by_class_name(<html for button that opens new tab >).click()

time.sleep(1)

url=second_driver.current_url

共有1个答案

权浩阔
2023-03-14

您需要切换到新选项卡。webrdiver.window_handles是打开的选项卡/窗口的列表。此代码段将切换到第二个打开的句柄。如果你想回到你开始的地方,使用[0]。如果您希望始终转到打开的最后一个选项卡,请使用[-1]。如果在window_handles[1]存在之前尝试切换到它,将引发一个indexerror。

webdriver.switch_to_window(webdriver.window_handles[1])
 类似资料:
  • 问题内容: 如何使用Selenium WebDriver(又名Selenium 2)在现有的Firefox浏览器中打开新标签页? 问题答案: 以下代码将在新标签页中打开链接。 下面的代码将打开空白的新标签页。

  • 我试图在IE11中通过点击一个链接打开一个新的标签,但它会在点击一个链接时打开一个新的窗口。我在谷歌上寻找合适的方法,但不知道如何实现这一点。有人能帮忙吗? 当手动单击时,link会在一个选项卡中打开,但当通过selenium单击时,它会打开一个新窗口。 我没有添加任何代码,因为没有太多要添加的。我使用webelement.click()单击了link元素,并且在驱动程序功能中禁用了persist

  • 我试图编写一个函数,它将接收一个“浏览器实例”(我指的是),并打开一个带有特定URL的新选项卡。 这是函数: 返回True(如果URL有效) 如果有人能告诉我我做错了什么,我将非常感激。如果您有其他方法来完成打开新选项卡的任务,这是可以的。顺便说一下,我曾尝试使用:,但没有成功(我没有得到新的选项卡,也没有异常)

  • 如何使用Java中的Selenium WebDriver(又名Selenium 2)在现有的Firefox浏览器中打开新的选项卡?

  • 我正在尝试使用Selenium Webdriver和Java打开一个新选项卡,并使用了下面的代码,但它没有打开任何新选项卡,在运行期间也没有显示错误消息。 使用上面的代码,我试图从键盘上按CTRL T打开一个新标签。请帮帮我。

  • 我有一个场景,就像当我点击一个链接时,它在新选项卡中打开。使用Selenium WebDriver我们如何处理它。 据我所知,我们不能切换到新的标签,但当我在网上搜索时,得到了以下一些解决方案。 null