Получить текст заголовка и назначить его переменной транспортир - PullRequest
0 голосов
/ 04 января 2019

У меня есть этот бит html на моей странице

<h4 class="text-right numberOfRecords">Total: {{vm.numberOfRecords}}</h4>

Я пытаюсь присвоить его переменной в одном из моих тестов, чтобы использовать его без разрешения обещания каждый раз.В настоящее время я присваиваю его следующим образом ...

totalComplaints = element(by.css('.numberOfRecords')).getText().then(function(text) {
   return parseInt(text.split(':')[1].trim());
});

... но мне приходится разрешать обещание каждый раз, когда я хочу получить доступ к переменной, вот так

totalComplaints.then(function(total) {
   console.log('totalComplaints = ', total);
});

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

console.log('totalComplaints = ', totalComplaints);

Ответы [ 2 ]

0 голосов
/ 04 января 2019

Транспортир conf.js

exports.config = {
    SELENIUM_PROMISE_MANAGER: false,
    specs: ['spec.js']
};

Жасмин спец.js

describe('', ()=>{

    let totalComplaints;

    it('case 1', async ()=>{
        totalComplaints = await element(by.css('.numberOfRecords')).getText();

        totalComplaints = totalComplaints.split(':')[1].trim();

        console.log('in case 1:  totalComplaints = ', totalComplaints);
    });


    it('case 2', async ()=>{

        console.log('in case 2: totalComplaints = ', totalComplaints);
    });
});
0 голосов
/ 04 января 2019

Например, вы можете сохранить значение в параметрах браузера:

element(by.css('.numberOfRecords')).getText().then(function(text) {
   browser.params.totalComplaints = parseInt(text.split(':')[1].trim());
});

И затем вызвать значение, которое является строкой:

browser.params.totalComplaints

Вы можете изменить parseInt на регулярное выражение:

text.match(/\d+/)[0];
...