docs/rules/no-angular-attributes.md
# Discourage using Angular attributes inside CSS selectors Ensure attributes used by Angular internally are not used to locate elements via Protractor. ## Rule details The rule would scan attributes used inside CSS selectors and would complain about any attribute that starts with `ng-` or `data-ng-` or `x-ng-`. :thumbsdown: Any use of the following patterns are considered warnings: ```jselement(by.css("[ng-show=test]"));element.all(by.css("[ng-hide]"));$("[ng-src*=test]");$$("[x-ng-href$=com]");$("[data-ng-cloak]");$$("a[href^=/], .container:has(nav) > [ng-focus]");$("a[href^=/], [ng-init*='test'] > .container");element(by.id("id")).$$("[ng-blur^=expression], a[href^=/]");element(by.id("id")).$("[data-ng-pattern*='test']");``` :thumbsup: The following patterns are not warnings: ```jselement(by.css("input"));element.all(by.css(".container"));$(".show");$$(".hide");$("[cloak]");$$("a[href^=/], .container:has(nav)");$("a[href^=/], .container");element(by.id("id")).$$("a[href^=/]");element(by.id("id")).$("input");var s = "ng-cloak";element(by.id("data-ng-pattern"));```