Подтвердить что ты не робот

Транспортир. Как найти элемент по пользовательским (не HTML) атрибутам?

Я использую Selenium WebDriver и Protractor для запуска тестов e2e в моем проекте angular. Скажем, у меня есть элемент вроде:

<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?

4b9b3361

Ответ 1

Попробуйте использовать xpath:

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

или только по атрибуту

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

Ответ 2

попробуйте использовать:

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

это проще и читабельнее, чем xpath для простых случаев.

больше о синтаксисе xpath и когда это полезно: http://www.w3schools.com/xml/xml_xpath.asp