获取标题文本并将其分配给变量量角器

时间:2019-01-04 09:42:14

标签: angularjs protractor automated-tests

我的页面上有这部分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 :(得分:0)

例如,您可以在浏览器参数中添加值:

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

然后调用作为字符串的值:

browser.params.totalComplaints

您可以考虑将parseInt更改为正则表达式:

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

答案 1 :(得分:0)

量角器conf.js

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

茉莉花spec.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);
    });
});