点击打开一个新的 link

Clicking opens a new link

selenium/chromedriver

当我通过 GUI 浏览器单击按钮时,会打开一个新选项卡。

Python Selenium 似乎在点击按钮时没有问题,因为它没有给我任何错误。当我需要在点击的页面中找到一个元素时,下一步就会出现错误。我让 selenium 截图了,它仍然显示第一页。

大概是点击了按钮,创建了一个新标签页,但没有切换过来?

如何切换到新标签,甚至首先验证新标签是否存在?

谢谢!

当您使用 selenium 打开浏览器时,它会在一个名为 window_handles 的列表中为它控制的每个 tab/window 存储一个句柄,例如:

from selenium import webdriver
driver = webdriver.Firefox()

print(driver.window_handles)

...应该给你 ['6b7af9bb-f299-462e-a79a-2b8fda63f388']

当您打开一个新标签时,该 window/tab 的新句柄应该添加到该列表中。要切换到所需的选项卡,请使用 driver.switch_to.window(),例如(继续上面的示例):

driver.switch_to.window(driver.window_handles[1])

注意:您也可以使用 driver.switch_to_window,但不赞成使用上面的示例。

此外,这只是一个调试技巧,使用 python repl 会很有帮助,这样您就可以实时了解浏览器的运行情况。