我正在进行一项测试,检测不同选择条目(此处为:车辆)的信息,并检查此车辆是否可以订购产品。
价格和名称的价值可以是" generalData"对象,但不是所选车辆的名称和状态......
var TestData = require('./testdata.js');
var TD = new TestData();
var generalData = TD.generalData;
(doing logging, open page)
PDP.elementPrice.getText().then(function (value) {
value = value.replace(/[^0-9\.,-]+/g, "");
generalData.articleData.price = value;
console.log(value);
});
PDP.elementArticleNumber.getText().then(function (value) {
generalData.articleData.number = value;
console.log(value);
});
从这里开始,没有值保存到GeneralData对象
PDP.elementCarList.count().then(function (value) {
console.log("Fahrzeuge: " + value);
vehicles = parseInt(value, 16);
for (var car = 0; car < vehicles; ++car) {
console.log(car);
PDP.elementCarList.get(car).getAttribute("data-testid").then(function (value) {
value = value.split("-").pop();
generalData.articleData.fin = value
console.log(value);
});
PDP.selectCar(car);
PDP.elementSelectCar.getText().then(function (value) {
generalData.articleData.vehicle = value;
console.log(value);
}); PDP.elementStatus.getAttribute("class").then(function (value) {
value = value.split("-").pop();
generalData.articleData.status = value;
console.log(value);
});
expect(PDP.elementStatus).toBeDefined();
var options = buildSendOptions(generalData);
request(options, callback);
}
});
答案 0 :(得分:1)
@jfriend00's explanation真的很棒。除此之外,这里有一个实际的例子,说明如何在Protractor中专门解决和使用多个promise:
getAs[String]
换句话说,操作并传递承诺。每当您需要实际值时 - 解决。
另见: