gpt4 book ai didi

javascript - 检查 Protractor 中一个元素内的所有文本是否相同

转载 作者:行者123 更新时间:2023-12-01 02:27:02 26 4
gpt4 key购买 nike

我尝试找到此场景的逻辑和代码,但代码不起作用。这有点复杂,但我想获取所有“摘要”元素并检查它们是否全部返回,以便我可以查明订单状态是否正确。尽管我不太清楚如何获取所有项目状态并检查其中之一是否未处于“已退回”状态,或者所有项目是否特别没有任何类别。有更简单的方法吗?

HTML:

2 scenarios
Scenario 1:

<summary>Order Status:<span id="status_returned">Returned</span></summary>

<summary>Item Status:<span>Returned</span></summary>

<summary>Item Status:<span>Returned</span></summary>

<summary>Item Status:<span>Returned</span></summary>

Scenario 2:

<summary>Order Status:<span id="status_complete">Complete</span></summary>

<summary>Item Status:<span>Returned</span></summary>

<summary>Item Status:<span>Collected</span></summary>

<summary>Item Status:<span>Returned</span></summary>

Protractor :

 var checkStatuses = element.all(by.cssContainingText('summary', 'Returned')).isPresent();
checkStatuses.each(function(checkStatus) {
if (checkStatus) {
console.log("Checking if order status is Returned..");
element(by.css('[id="status_returned"]')).waitReady().then(function(isResult) {
if (isResult) {
console.log("Order Status: Returned (PASS)");
} else {
throw "Error: Order Status is NOT Returned";
}
});
} else {
console.log("Checking if item status is Returned..");
element(by.css('[id="status_complete"]')).waitReady().then(function(isResult) {
if (isResult) {
console.log("Item(s) Status: Returned (PASS)");
} else {
throw "Error: Item(s) Status is NOT Returned";
}
});
}
}),
function(err) {
throw err;
};

最佳答案

您可以尝试下面的代码片段。安装“q”包,因为以下代码片段使用“q”包。

var statusObjects = element.all(by.css('summary span'));
statusObjects.then(function(items) {
var statusPromises = [];
items.forEach((item) => {
statusPromises.push(item.getAttribute('innerHTML'));
});
var Q = require('q');
Q.allResolved(statusPromises).then((results) => {
var allStatusesAreReturned = true, noOfMismatches = 0;
for(let i=0;i<results.length;i++) {
if(results[i].state == 'fulfilled' && results[i].value != 'Returned') {
allStatusesAreReturned = false;
noOfMismatches++;
}
}
if(allStatusesAreReturned) {
console.log('All Statuses are returned');
} else {
console.log('Mismatch of status Returned in :'+noOfMismatches+' number of occurrences');
}

});
});

关于javascript - 检查 Protractor 中一个元素内的所有文本是否相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48677291/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com