Using Selenium webdriver I have the following element
<div data-1223="some data" data-209329="some data" data-dog="some value">
Is there a way to get all the data- attributes of the element? For a specific attribute I can use
elem.getAttribute('data-1223')
but how can I get all the data attributes together
Use below Code:-
WebElement element = "Your Element"; // Your element
JavascriptExecutor executor = (JavascriptExecutor) driver;
Object aa=executor.executeScript("var items = {}; for (index = 0; index < arguments[0].attributes.length; ++index) { items[arguments[0].attributes[index].name] = arguments[0].attributes[index].value }; return items;", element);
System.out.println(aa.toString());
Hope it will help you :)
No. There is no way in Selenium WebDriver to access any attribute whose full name you don't know. You can't even enumerate over all attributes of a WebElement
.
It doesn't look like the jsonwire protocol supports this concept. The GET_ELEMENT_ATTRIBUTE command takes a list of attribute names, not a list of attribute name patterns.
It is probable that you could query via a JavascriptExecutor
and either XPath or CSS query to find all the attribute names for your element, then use that to loop over getAttribute
. But if you're going to do that, you can just construct your XPath or CSS query to give you the values directly, and leave the WebElement
out of it completely.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With