量角器失败:“ url”参数必须为字符串类型。接收类型未定义

时间:2020-04-09 07:43:17

标签: angularjs selenium automation protractor webdriver

我是量角器的新手,正在编写AngularJS量角器测试。我正在尝试从Google Chrome控制台读取一个网址,但收到错误消息“失败:“ url”参数必须为字符串类型。收到的类型为undefined“。我的代码是:

let address;
.
.
function readingUrl() {
    browserA.manage().logs().get('browser')
        .then(function (browserLog) {
            var i = 0;
            for (i; i <= browserLog.length - 1; i++) {
                if (browserLog[i].message.indexOf('My Url:') != -1) {
                    address = browserLog[i].message.split('My Url:')[1].toString();
                    return address;
                }
            }
        });
}

我这样调用此函数:

browserB.get(readingUrl()).then(() => {
        browserB.sleep(3000);
    });

Chrome控制台中的网址如下:

My Url:https://www.google.com/

有人可以帮我吗,我正在努力做,并且永远被困在这里

2 个答案:

答案 0 :(得分:0)

尝试以下功能: 不是从“ then block”返回,而是从readingUrl主函数返回。

let address;
.
.
function readingUrl() {
    browserA.manage().logs().get('browser')
        .then(function (browserLog) {
            var i = 0;
            for (i; i <= browserLog.length - 1; i++) {
                if (browserLog[i].message.indexOf('My Url:') != -1) {
                    address = browserLog[i].message.split('My Url:')[1].toString();
                }
            }
        });
   return address;
}

答案 1 :(得分:0)

这应该有效

readingUrl().then(url => 
  browserB.get(url)
    .then(() => browserB.sleep(3000))
)