2017-04-26 3 views
0

私はそれを行うことはできませんが、HTMLアトリビュートなどの存在または不在が渡されるアサート/通過を期待できますか?または、私は1つまたは他のバージョンに失敗していますか?アトリビュートの有無のテスト

私は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')を呼び出すことができますか?(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 
      } 
    ); 
関連する問題