2017-04-26 136 views
0

我不确定它是否可以完成,但是有可能编写一个断言/期望来传递存在或不存在某个东西(例如,HTML元素属性)的地方?或者我坚持与一个或另一个版本失败?测试属性的存在或不存在

我正在编写一个anchor元素的测试。测试期望是链接将在同一窗口中打开。

<a href="https://foo.com">Foo</a> 

现在,正如任何Web开发人员都知道的那样,上面的例子可以做到这一点。 然而,该链接的第二个版本,也可以:

<a href="https://foo.com" target="_self">Foo</a> 

采用target是一个风格问题,最在任何情况下肯定是多余的。我有页面,target="_self"的存在或不存在似乎是任意的。

任何建议或例子?

NB我在考虑使用这个机会来失败一个或另一个,并以此为契机来纠正HTML中的“增强”。这可能以不同的方式回答这个问题。

+2

希望我理解你的问题。不可能有条件断言,但是使用条件来创建特定断言的路径。你可以在元素上调用'getAttribute('target')。then(function(val){if(val).... assertion1 ... else ... assertion2 ...})'吗?如果你需要一个更完整的例子,我可以写一个。 – Gunderson

回答

0

希望下面的代码将满足您的要求。您可能需要更改锚点元素定位器。

element(by.xpath('.//*[text()="Foo"]')) 
     .getAttribute('target') 
     .then(function(value){ 
      //this function gets executed only if target attribute is present 
      }, 
      function(error){ 
      //this is a error case and will gets executed when target 
      //attribute is NOT present in the anchor element 
      } 
    );