2011-11-17 69 views
3

我想使用selenum-1检索URL的请求参数有没有办法?我看到API列表getLocation()方法返回绝对URL。在Selenium中获取请求参数

如果URL http://webserver/webapps/library/do/javabooks/author?author_id=42&book_id=55

如果我书面方式selenium.getLocation()返回我http://webserver/webapps/library/do/javabooks/author。但我对请求参数感兴趣。或者,如果我可以使用Selenium API获取带有请求参数的完整URL,那也没关系。 有什么办法吗?

在此先感谢。

+0

如果你使用的是webdriver我会说做driver.Url并且会捕获地址栏中的url – CBRRacer

回答

3

我不知道这是否...这是可以验证URL像你说的任何功能,但对于事情只是稍有不同我倾向于使用JavaScript:

selenium.get_eval('window.location.href'); 

如果你经常需要它,你可能会考虑把它包装在一个库或函数中,但这对我来说似乎相当干净。例如,您可以稍微扩展Javascript以获得对返回数据的更多控制:分割?字符,并仅采用数组中的第二项。从那时开始,可能再次分开&以获取作为字符串列表返回的参数?

+0

谢谢@jro:很好通过javaScript我已经做过了,想知道是否有使用Selelium API的直接方式。 –

+0

@java_enthu:不是我所知道的。我再一次浏览了[API参考](http://release.seleniumhq.org/selenium-remote-control/1.0-beta-2/doc/python/selenium.selenium-class.html),但找不到任何确实符合你期望的东西。 – jro

+1

谢谢。但是,我正在寻找一个问题。显示在网页上的URL是http://webserver/webapps/library/do/javabooks/author.jsp?tab_group_id = _6_1 但是当我在做selenium.getEval(“window.location.href”)时,它会返回我http :// webserver/webapps/library/do/javabooks/booksManager?sourceType = BOOKS 令我惊讶的是,这两个URL在页面上显示了相同的内容。但根据目前的要求,我想检索前一个网址。我尝试使用window.location,window.location.href,document.location.href和document.location都返回相同的URL。 –