如何确认id不存在于茉莉花测试用例中

时间:2014-07-21 12:01:44

标签: angularjs jasmine protractor

我正在为angularjs测试编写茉莉花测试用例。在一个视图中,学生无法看到按钮。我正在根据身份证长度进行检查,但我得到了expected '1' instead of '0'。按钮不在视图中仍然可以看到id。

还有其他条件要检查吗?

element.all(by.id('create_course_button')).then(function(items) {
  expect(items.length).toBe(0);
}); 

3 个答案:

答案 0 :(得分:2)

我的猜测是您的按钮仍然存在于DOM 中,但被css display: nonevisibility: hidden隐藏。

如果这是正确的,您可以使用WebdriverJS的.isDisplayed() API来检查元素是否正在显示:

expect(element(by.id('create_course_button')).isDisplayed()).toEqual(false);

答案 1 :(得分:0)

你能试试expect(by.id('create_course_button')).not.toExist();

吗?

您也可以尝试:

expect($(document)).not.toContain($el);

另一个建议:

expect('#create_course_button').not.toExist();

答案 2 :(得分:0)

如果您想使用isDisplayed()

测试可见性
expect($('#foo').isDisplayed()).toBe(true);

如果要测试DOM中是否存在该元素,请使用browser.isElementPresent()

expect(browser.isElementPresent(by.css('#foo'))).toBe(false);

请记住,您需要将定位器传递给browser.isElementPresent(by.xxx)