AngularJS & Protractor - getLocationAbsUrl() 不返回 url(字符串)而是一个对象

标签 angularjs protractor

标题已经说明了一切。 我想将 url 记录到控制台,但它给了我一些对象

规范.js

describe('Protractor Demo App', function() {

  it('should add 1 and 2', function() {

    browser.get('http://juliemr.github.io/protractor-demo/#/');
    element(by.model('first')).sendKeys(1);
    element(by.model('second')).sendKeys(2);

    element(by.id('gobutton')).click();

    console.log(browser.getLocationAbsUrl()); // logs some object

    expect(browser.getLocationAbsUrl())
        .toEqual('/'); 
    });

});

这就是我在控制台中看到的内容

Using the selenium server at http://localhost:4444/wd/hub
[launcher] Running 1 instances of WebDriver
Started
{ closure_uid_727700741: 274,
  flow_:
   { events_: {},
     closure_uid_727700741: 1,
     activeFrame_:
      { events_: {},
        closure_uid_727700741: 75,
        flow_: [Circular],
        parent_: [Object],
        children_: [Object],
        lastInsertedChild_: [Object],
        pendingTask_: null,
        isLocked_: false,
        isBlocked_: false,
        pendingCallback: false,
        pendingRejection: false,
        cancellationError_: null },
     schedulingFrame_:
      { events_: {},
        closure_uid_727700741: 75,
        flow_: [Circular],
        parent_: [Object],
        children_: [Object],
        lastInsertedChild_: [Object],
        pendingTask_: null,
        isLocked_: false,
        isBlocked_: false,
        pendingCallback: false,
        pendingRejection: false,
        cancellationError_: null },
     shutdownTask_: null,
     eventLoopTask_: null,
     hold_:
      { _idleTimeout: 2147483647,
        _idlePrev: [Object],
        _idleNext: [Object],
        _idleStart: 95289669,
        _onTimeout: [Function: wrapper],
        _repeat: true },
     yieldCount_: 10 },
  stack_: null,
  parent_:
   { closure_uid_727700741: 272,
     flow_:
      { events_: {},
        closure_uid_727700741: 1,
        activeFrame_: [Object],
        schedulingFrame_: [Object],
        shutdownTask_: null,
        eventLoopTask_: null,
        hold_: [Object],
        yieldCount_: 10 },
     stack_: { [Task: Protractor.getLocationAbsUrl()] name: 'Task' },
     parent_: null,
     callbacks_: [ [Object] ],
     state_: 'pending',
     handled_: true,
     pendingNotifications_: false,
     value_: undefined },
  callbacks_: null,
  state_: 'pending',
  handled_: false,
  pendingNotifications_: false,
  value_: undefined }
.


1 spec, 0 failures
Finished in 3.251 seconds
[launcher] 0 instance(s) of WebDriver still running
[launcher] chrome #1 passed

那个物体是什么? 如何将当前 url 打印到控制台?

最佳答案

据我所知,browser.getLocationAbsUrl()返回promise,当promise被解析时,它会给你当前的url。 因此,当您使用

打印它时
console.log(browser.getLocationAbsUrl());

它打印了 Promise 的完整对象。

尝试下面的代码,它可能会对您有所帮助:-

 browser.getCurrentUrl().then(function(actualUrl) {
      console.log(actualUrl);
    });

您可以在此处找到语法 link

希望有帮助:)

关于AngularJS & Protractor - getLocationAbsUrl() 不返回 url(字符串)而是一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30937913/

相关文章:

javascript - 基于数组验证输入

angularjs - 如何在 ui-router 1.0.0 onBefore 中获取 url 'from' 和 'to'?

javascript - 在 Protractor JS 中将函数从一个文件读取到另一个文件

angular - 加载文件 Protractor 失败 - 失败 : script timeout: result was not received in 11 seconds

node.js - Protractor 执行 config.js 不工作

protractor - 如何使用 Protractor 来查找 Angular-UI 生成的工具提示内容的淡入淡出?

javascript - ng-repeat 在 ng-repeat-start 中重复

javascript - 在 Angular 范围外调用函数的正确方法是什么?

javascript - AngularJS 中的动画新元素

javascript - 单击某个输入触发焦点事件