在量角器中,全局可用browser对象有两种方法:
browser
getLocationAbsUrl()
从AngularJS返回当前的绝对URL。
getCurrentUrl()
调度命令以检索当前页面的URL。
两者之间的区别还不是很明显。到目前为止,我getCurrentUrl()仅使用过。
我们getLocationAbsUrl()什么时候应该使用?它涵盖哪些用例?
我无法回忆起getLocationAbsUrl()其他selenium语言绑定中的任何类似内容。它看起来很像量角器。
GitHub getCurrentUrl来源
webdriver.WebDriver.prototype.getCurrentUrl = function() { return this.schedule( new webdriver.Command(webdriver.CommandName.GET_CURRENT_URL), 'WebDriver.getCurrentUrl()'); };
使用schedule()-> command()包装器来解决来自 WebDriver.getCurrentUrl()
schedule()
command()
WebDriver.getCurrentUrl()
GitHub Protractor.getLocationAbsUrl的源代码
functions.getLocationAbsUrl = function(selector) { var el = document.querySelector(selector); if (angular.getTestability) { return angular.getTestability(el). getLocation(); } return angular.element(el).injector().get('$location').absUrl(); };
只是一个包装$location.absUrl(),等待 AngularJS 库加载
$location.absUrl()
当前网址与绝对网址
指定的应用网址:
http://www.example.com/home/index.html#/Home
当前URL 解析为更多URI
/home/index.html#/Home
绝对网址 解析为
何时要使用绝对URL: 您想要使用完整域URL,而不是本地导航(URI),而要使用 绝对URL 。
如果您的应用程序调用了 当前URL ,则测试应调用getCurrentUrl()。
如果您的代码要求提供 绝对URL ,则应调用测试getLocationAbsUrl()。