在 Protractor 中,全局可用的browser
对象具有两种方法:
getLocationAbsUrl()
getCurrentUrl()
两者之间的区别还不是很明显。到目前为止,我仅使用
getCurrentUrl()
。我们什么时候应该使用
getLocationAbsUrl()
?它涵盖哪些用例?我无法记忆起其他 Selenium 语言绑定(bind)中类似于
getLocationAbsUrl()
的任何内容。它看起来很像 Protractor 。 最佳答案
GitHub的getCurrentUrl 源码
webdriver.WebDriver.prototype.getCurrentUrl = function() {
return this.schedule(
new webdriver.Command(webdriver.CommandName.GET_CURRENT_URL),
'WebDriver.getCurrentUrl()');
};
使用
schedule()
-> command()
包装器来解析WebDriver.getCurrentUrl()
中的 promise 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 库加载当前URL与绝对URL
指定的应用网址:
http://www.example.com/home/index.html#/Home
当前URL解析为更多URI
/home/index.html#/Home
绝对网址解析为
http://www.example.com/home/index.html#/Home
您何时要使用绝对URL:您想要绝对URL,而不是本地导航(URI),而要使用完整域URL。
getCurrentUrl()
。 getLocationAbsUrl()
。 关于javascript - getLocationAbsUrl和getCurrentUrl,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30790032/