在量角器中自动化 E2E,删除事件后如何计算事件数

Automating E2E in protractor, How do I get a count of events after I have removed one

我需要测试事件的删除并显示事件已被删除。由于这些事件不是唯一的,并且在测试时数量可能是随机的,我认为计数是最好的方法。

这对我来说是全新的,因此对含糊之处深表歉意。
下面的代码希望显示我想要做什么,但期望应该是一个数字,而我比较的是开始和结束计数。任何人都可以指出正确的方向或提供替代解决方案吗?

enter code here

it('should remove the events', async function () {
await browser.get('/');
var removeBtns = element.all(by.id('removeButton')).first();
var startcount = element.all(by.id('removeButton')).count();
console.log(startcount);
removeBtns.click();
element(by.className('...confirm removal of button')).click();
var endcount = element.all(by.id('removeButton')).count();
console.log(endcount);
expect(endcount).toBeLessThan(startcount);

enter code here

返回错误 没有过载匹配此调用。 重载 1 of 2,'(expected: number | Promise, expectationFailOutput?: any): Promise',出现以下错误。
'Promise' 类型的参数不可分配给 'number | Promise'.
类型的参数 类型 'Promise' 缺少类型 'Promise' 的以下属性:[Symbol.toStringTag],最后 重载 2 of 2,'(expected: number, expectationFailOutput?: any): boolean',出现以下错误。
'Promise' 类型的参数不可分配给 'number'.

类型的参数

element.all().count() returns一个承诺。

出于某种原因,expect() 接受了承诺,但您比较的东西像 .toBe() 和 .toEquals() 这些不接受承诺。你必须做这样的事情:

var endcount = await element.all(by.id('removeButton')).count();
expect(startcount).not.toBe(endcount);

注意我把 endcount 改到了最后,只要你确保你比较的是等待的,期望中的哪个并不重要。