【问题标题】:How to find URL of web page opened by clicking link?如何找到通过单击链接打开的网页的 URL?
【发布时间】:2019-08-22 09:26:58
【问题描述】:
我的情况是:
我打开一个网页(它有不同的链接)并随机点击一个链接。
现在我想打开那个网页的 URL。
我搜索了很多,到处都找到了我尝试过的相同答案。
driver.get(url)
driver.current_url
它每次都返回主网页的网址,而不是通过随机点击链接打开的网址。
我观察到的是,发生这种情况是因为单击链接时,新网页会在新选项卡中打开,并且 current_url 会返回第一个选项卡上页面的 URL。这个问题有什么解决办法吗?
【问题讨论】:
标签:
python
selenium
webdriver
geturl
【解决方案1】:
为了使用新标签,您必须将驱动程序切换到它。
您可以使用 Selenium 方法检查当前窗口并移动到另一个窗口:
driver.window_handles
查找窗口句柄列表并尝试使用以下方法进行切换。
- driver.switch_to.active_element
- driver.switch_to.default_content
- driver.switch_to.window
【解决方案2】:
我会说您需要从链接本身收集 URL。我的意思是“href”属性。如果只有一些 onClick 事件并且 URL 是动态生成的,则需要调整此函数以将 url 传递到您需要的地方。