[英]How to properly store element count in Protractor
我对量角器非常陌生,对以下代码的编写方式(实际可行)不满意。
我想简单地将计数存储在变量中(此处为“ nb_before”),然后在其后重用,但是promise机制不允许我简洁地执行此操作,因此我决定将所有内容都放在同一函数中。 但这太丑了。
我想念什么吗?
最好的祝福
// We count the lines, we click on a button which adds a new line,
// then we verify that the new line has a specific text.
it("Test case", function () {
browser.get(browser.baseUrl);
var button = element(by.xpath("//whatever"));
var rows = element.all(by.xpath("//whatever"));
rows.count().then(function(count){
nb_before = count;
button.click(); // adds a line
var nb_after = nb_before + 1;
var new_line = element(by.xpath("//li[" + nb_after + "]"));
expect(new_line.getText()).toEqual("yay");
});
});
看来您可以在这里使用.last()
方法来获取最后一行:
it("Test case", function () {
browser.get(browser.baseUrl);
var button = element(by.xpath("//whatever"));
var rows = element.all(by.xpath("//whatever"));
button.click(); // adds a line
expect(rows.last().getText()).toEqual("yay");
});
但是,我们可以在单击按钮之前和之后获取计数,并检查计数是否增加了一个-这仍然需要我们使用.then()
来解决.count()
返回的promise:
var button = element(by.xpath("//whatever"));
var rows = element.all(by.xpath("//whatever"));
rows.count().then(function (countBefore) {
button.click();
expect(rows.count()).toEqual(countBefore + 1);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.