Selenium WebDriverとProtractorを使用して、angularプロジェクトでe2eテストを実行しています。次のような要素があるとします。
_<div my-directive my-unique-id="abc123"></div>
_
上記の要素を見つける方法。 element(by.css('div[my-unique-id="abc123"]'));
で試しましたが、NoSuchElementErrorが発生します。
たとえば、次のようなHTML属性を試してみると、次のようになります。
_<a title="myTitle" href="">Click me</a>
_
element(by.css('a[title="myTitle"]'))
を使用して要素を正しく見つけることができました
標準のHTML属性がない場合、カスタム属性を持つ要素を見つけるにはどうすればよいですか?
Xpathを使用してみてください:
element(by.xpath('//div[@my-unique-id="abc123"]'))
または属性のみ
element(by.xpath('//div[@my-unique-id]'))
使用してみてください:
element(by.css('[my-unique-id="abc123"]'))
単純なケースでは、xpathよりも簡単で読みやすくなっています。
xpath構文とそれが役立つ場合の詳細: http://www.w3schools.com/xml/xml_xpath.asp