使用量角器检查元素是否不存在或不匹配?

时间:2014-05-27 09:38:42

标签: protractor

我正在使用量角器(在 - 矩形页面上)并且希望不会出现特定的警告消息。

所以我需要检查元素的存在,然后执行toMatch()检查...

警告我很快就会自己回答 - 但如果你是一名枪式量角器测试作家,你可以帮助我: - )

我需要将这两者结合起来:

 // utility to test expection of an element to match a regex:
 this.expectByCssToMatch = function(css, pattern) {
   browser.driver.findElement(
     by.css(css)).getText().then(function(text) {
       expect(text).toMatch(pattern);
     });
 };
 // utility to test expection an element is missing:
 this.expectByCssToBeAbsent = function(css) {
   browser.driver.isElementPresent(
     by.css(css)).then(function(present) {
       expect(present).toBeFalsy();
     });
 };

1 个答案:

答案 0 :(得分:1)

好吧,这是我能想到的最好的 - 似乎有些不整洁但是这可能就是这样吗? (似乎有用)

 // utility to test expection of an element to not match a regex:
 this.expectByCssNotToMatch = function(css, pattern) {
   browser.driver.isElementPresent(by.css(css)).
     then(function(present) {
       if (present) {
         browser.driver.findElement(by.css(css)).getText().
         then(function(text) {
           expect(text).not.toMatch(pattern);
         });
       }
       else { // element absent so we have no match (pass)
         expect(present).toBeFalsy();
       }
   })
 };