web-dev-qa-db-ja.com

分度器-カスタム(HTML以外)属性で要素を見つける方法は?

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属性がない場合、カスタム属性を持つ要素を見つけるにはどうすればよいですか?

13

Xpathを使用してみてください:

element(by.xpath('//div[@my-unique-id="abc123"]'))

または属性のみ

element(by.xpath('//div[@my-unique-id]'))
18

使用してみてください:

element(by.css('[my-unique-id="abc123"]'))

単純なケースでは、xpathよりも簡単で読みやすくなっています。

xpath構文とそれが役立つ場合の詳細: http://www.w3schools.com/xml/xml_xpath.asp

4
Sauerkraut