我正在尝试检查网页上某列的元素列表是否按降序排列。我来自Java背景,所以我仍然想弄清楚为什么这不起作用。据我所知,当它达到最终预期时,isDescending应该被正确设置,但它永远不会改变我初始化它。
我之前已将print语句放在循环中,并且一切正常。
我做了一些挖掘,它可能与它在完成循环之前在底部运行期望有关,或者isDescending实际上由于某种原因没有正确设置。
我尝试了很多像setTimeout和其他的东西,但没有解决问题。
以下是代码,寻找任何建议或链接到我可以进行更多研究的页面。
function checkIfDescending(){
// Will hold list of webelements that each have one account number
const accountNumbersDescending = pa_search.account_no_column_elements();
let previousDescendingValue = '';
let isDescending = true;
accountNumbersDescending.each((accountNumberElement) => {
accountNumberElement.getText().then((text) => {
if (previousDescendingValue !== '') {
if (!(text >= previousDescendingValue)) {
isDescending = false;
}
}
previousDescendingValue = text;
});
});
expect(isDescending).toBe(true);
}
作为最后一点,如果我把期望放在if语句中,它就能正常工作。问题是,如果早期出现故障,它会运行几次。
答案 0 :(得分:0)
感谢Mark Schultheiss带领我回答这个问题。 我不是100%它是正确的做事方式,但它现在可能通过/失败。
function checkIfDescending(){
const accountNumbersDescending = pa_search.account_no_column_elements();
let previousDescendingValue = '';
let isDescending = true;
accountNumbersDescending.each((accountNumberElement) => {
accountNumberElement.getText().then((text) => {
if (previousDescendingValue !== '') {
if (!(text >= previousDescendingValue)) {
isDescending = false;
}
}
previousDescendingValue = text;
})
}).then(() => {
expect(isDescending).toBe(true);
});
}
答案 1 :(得分:0)
您可以查看chai-increasing插件。
您需要将值存储在数组或promise中并进行expect
断言。