使用 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获取网页源码,爬取简书网站