Can we use css properties (like background-color) for locating an element when that property is not part of the element attributes? Like enter image description here
If I have to get the xpath or css of this element, either I have to use class or href attributes or similar way. But I want to find it based on the background color, which is not shown anywhere in the attributes but it is seen in the element style.
Please answer if this is possible
2 Answers 2
You can reference any combination that renders in the DOM. So in this case the css class and the element type you can reference. As it's a link that likely has multiple associations to the class I would utilize an xquery that includes the parent object and then the a link and class, or the rendered text of the link if that is unique.
In general you can't used derived class color information, but only what is rendered in the DOM. The drilled in view of the DOM that you have is what you can utilize to locate elements, if it isn't in there then you can't use it as the screen reader is literally reading the DOM.
xquery is really powerful and I would recommend learning that for your element attachment and locating. Good xquery example page
-
Thanks for your answer. So Anything that is not seen in the DOM can't be used to find the element, is that right?Soma Shekhar P– Soma Shekhar P2018年07月12日 15:55:08 +00:00Commented Jul 12, 2018 at 15:55
-
Yes, you can utilize JavaScript to manipulate the DOM but the screen reader will only read the rendered DOM.mutt– mutt2018年07月13日 06:30:29 +00:00Commented Jul 13, 2018 at 6:30
You can only locate element by style if the element has style attribute inline so that you will be able to use that attribute like you normally do when use attributes in css selectors.
However you cannot use computed styles to locate element using css selectors. See this post for details: https://stackoverflow.com/questions/8426882/css-selector-by-inline-style-attribute
Basically css-selectors are originally used to define a scope of elements you want to apply the styles to, not to defined the scope of elements having the particular style.
Explore related questions
See similar questions with these tags.