使用 Selenium WebDriver 获取当前页面的 URL

Posted

技术标签:

【中文标题】使用 Selenium WebDriver 获取当前页面的 URL【英文标题】:Getting the URL of the current page using Selenium WebDriver 【发布时间】:2012-07-17 23:26:48 【问题描述】:

我正在尝试获取当前打开页面的 URL。我正在使用 Selenium WebDriver 和 Java。

我正在通过以下方式访问当前 URL:

WebDriver driver = new WebDriver();
String url = driver.getCurrentUrl();

但是,该 URL 似乎并未真正反映我当前的位置。

我当前的测试案例涉及访问 NYT 网站,然后单击“技术”链接。但是,url 似乎始终是 http://www.nytimes.com/,无论地址栏中显示的 URL 是什么。

我如何实际访问地址栏中 URL 的值,以便知道我实际在哪个页面上?

【问题讨论】:

只是好奇为什么不能直接访问技术链接?为什么要到首页点击? 我的程序通过跟踪链接迭代地探索页面 - 但能够知道它实际在哪里会很有用,这样它就不会一遍又一遍地点击相同的链接。 使用htmlUnitDriver 确实不会更改 URL。奇怪的。不过,在 Windows XP SP3 上的 IE8 中,一切运行顺利。你的浏览器是什么(你试过其他的吗?),操作系统和 Selenium 版本是什么? 我知道 OP 询问了 Java,但对于 Python/Robot Framework,***.com/questions/31833624/… 有人推荐 GetLocation 【参考方案1】:

睡觉。它会起作用的。我努力了。 原因是页面尚未加载。 检查此问题以了解如何等待加载 - Wait for page load in Selenium

【讨论】:

Sleep() 几乎不应该用于等待页面加载。我认为原因很明显(网络速度、cpu 速度、Web 服务器响应时间等),并且出于这些原因,Web 驱动程序中存在与等待相关的方法,因此请始终使用这些方法而不是 sleep()。

以上是关于使用 Selenium WebDriver 获取当前页面的 URL的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 selenium webdriver、NUnit 和 C# 获取元素属性的子属性值

scrapy中使用selenium+webdriver获取网页源码,爬取简书网站

scrapy中使用selenium+webdriver获取网页源码,爬取简书网站

使用 selenium webdriver 获取浏览器版本

使用 WebDriver 和 Selenium 在类中获取跨度

如何使用selenium从WebDriver获取cookie值?