如何在 Selenium for Python 上由 .click() 打开的新选项卡上使用driver.current



我正在编写一个python脚本,它使用BeautifulSoup进行网页抓取,然后使用Selenium来导航网站。在链接上使用 .click(( 导航到另一个站点后,我想使用 .current_url 来获取用于制作美丽汤的网站 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

所以我希望 url 是点击后的新网站,而不是原始网址

谢谢,很抱歉,如果很明显我是初学者。

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

webdriver.switch_to_window(webdriver.window_handles[1])

相关内容

最新更新