一尘不染

getLocationAbsUrl和getCurrentUrl

selenium

在量角器中,全局可用browser对象有两种方法:

从AngularJS返回当前的绝对URL。

调度命令以检索当前页面的URL。

两者之间的区别还不是很明显。到目前为止,我getCurrentUrl()仅使用过。

我们getLocationAbsUrl()什么时候应该使用?它涵盖哪些用例?


我无法回忆起getLocationAbsUrl()其他selenium语言绑定中的任何类似内容。它看起来很像量角器。


阅读 296

收藏
2020-06-26

共1个答案

一尘不染

GitHub
getCurrentUrl
来源

webdriver.WebDriver.prototype.getCurrentUrl = function() {
  return this.schedule(
      new webdriver.Command(webdriver.CommandName.GET_CURRENT_URL),
      '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 库加载


当前网址与绝对网址

指定的应用网址:

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

  • 如果您的应用程序调用了 当前URL ,则测试应调用getCurrentUrl()

  • 如果您的代码要求提供 绝对URL ,则应调用测试getLocationAbsUrl()

2020-06-26