Ошибка транспортира: аргумент "url" должен иметь тип string. Полученный тип не определен - PullRequest
1 голос
/ 09 апреля 2020

Я новичок в Protractor и прошёл тест AngularJS транспортира. Я пытаюсь прочитать URL-адрес из консоли Google Chrome, но получаю сообщение об ошибке «Ошибка: Аргумент« url »должен иметь тип string. Полученный тип 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);
    });

URL в консоли Chrome выглядит следующим образом:

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

Может ли кто-нибудь помочь мне, я пытаюсь сделать это и застрял здесь, как навсегда

Ответы [ 2 ]

0 голосов
/ 09 апреля 2020

это должно работать

readingUrl().then(url => 
  browserB.get(url)
    .then(() => browserB.sleep(3000))
)
0 голосов
/ 09 апреля 2020

Попробуйте функцию ниже: вместо возврата из «затем блока» возврат из главной функции 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;
}
...