如何使用Jasmine通过id检查元素是否存在?

18

我该如何使用Jasmine根据id检查页面上的元素是否存在?

我查看了匹配程序,发现toExist()似乎不能解决这个问题。

这是我尝试过的:

1. expect(by.id('my-id')).not.toExist();

2. expect($(document)).not.toContain($(#my-id));

你能帮忙吗?

2个回答

22

使用Protractor v1.x(不使用angularjs-jasmine-matchers):

expect(element(by.id('my-id')).isPresent()).toBe(true);

3
对于简单的单元测试来说,Protractor的开销有点大。@runTarm的回答避免了这种过度开销。 - George Cummins
出现错误:"error TS2345: 类型为 'true' 的参数无法分配给类型为 'Expected<Promise<boolean>>' 的参数。" - Jry9972
是的,对于任何在TypeScript中使用Protractor的人来说,这都是一个大问题。 - shlensky

11

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接