如何找到点击link打开的网页URL?

How to find URL of web page opened by clicking link?

我的场景是: 我打开了一个网页(它有不同的 links)并随机点击了一个 link。 现在我想打开那个网页的URL。

我搜索了很多,发现我试过的所有答案都是一样的。

driver.get(url)
driver.current_url

每次returns我都是主网页的URL,而不是随机点击link打开的那个。 我观察到的是,发生这种情况是因为单击 link 新网页会在新选项卡中打开,并且 current_url returns 我 URL 位于第一个页面标签。这个问题有什么解决办法吗?

为了使用新选项卡,您必须将驱动程序切换到它。

您可以使用 Selenium 方法检查当前 window 并移动到另一个:

driver.window_handles

查找 window 句柄列表,然后尝试使用以下方法进行切换。

- driver.switch_to.active_element      
- driver.switch_to.default_content
- driver.switch_to.window

我会说你需要从 link 本身收集 URL。我的意思是 "href" 属性。如果只有一些 onClick 事件并且 URL 是动态生成的,则需要调整此函数以在需要的地方传递 url。