AngularJS транспортир: выберите div с помощью директивы ng-show
Мне нужно получить доступ к div с помощью директивы ng-show БЕЗ использования xpath
<div ng-show="my_error && dirty_field">
Custom error message.
</div>
Я пробовал это, но это не работает должным образом
element(by.css('[ng-show=my_error && dirty_field]'));
а также
element(by.model('my_error && dirty_field'));
Как я могу сделать?
2 ответа
Просто чтобы добавить несколько пунктов здесь.
Прежде всего, вам определенно нужны цитаты вокруг ng-show
значение в этом случае:
element(by.css('[ng-show="my_error && dirty_field"]'));
Это потому, что значение содержит не алфавитно-цифровые символы. Смотрите эту связанную тему:
Кроме того, я не думаю, что вы должны использовать dirty_field
часть в вашем локаторе. Это звучит как более техническая переменная, используемая в логике проверки формы. Я бы использовал проверку "содержит" вместо того, чтобы проверить my_error
только часть (обратите внимание, как я удалил кавычки в этом случае - значение буквенно-цифровое):
element(by.css('[ng-show*=my_error]'));
Также обратите внимание, что вы можете использовать $
ярлык вместо element(by.css())
:
$('[ng-show*=my_error]');
Таким образом, вы тестируете транспортир с помощью свойств.
element.all(by.css('[ui-sref="about_us"]')).first();
element(by.css('[ng-click="clickme()"]')),
element(by.css('[ng-show*=show_me]'));