2017-04-26 25 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 
      } 
    );