We get and set attributes to check or change properties of web elements during tests. This helps us verify the page works as expected.
Getting and setting attributes in Selenium Java
String value = element.getAttribute("attributeName"); // element.setAttribute("attributeName", "newValue"); // Note: setAttribute is not directly available in Selenium WebDriver
In Selenium WebDriver, getAttribute is used to read an attribute's value.
There is no direct setAttribute method in Selenium WebDriver; to set attributes, you use JavaScript execution.
String placeholder = inputElement.getAttribute("placeholder");String href = linkElement.getAttribute("href");JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].setAttribute('value', 'new text')", inputElement);This test opens a page, reads the placeholder text of an input box, sets a new value using JavaScript, then reads the value to confirm the change.
import org.openqa.selenium.By; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; public class AttributeTest { public static void main(String[] args) { System.setProperty("webdriver.chrome.driver", "path/to/chromedriver"); WebDriver driver = new ChromeDriver(); try { driver.get("https://example.com/form"); WebElement input = driver.findElement(By.id("username")); // Get placeholder attribute String placeholder = input.getAttribute("placeholder"); System.out.println("Placeholder before: " + placeholder); // Set value attribute using JavaScript JavascriptExecutor js = (JavascriptExecutor) driver; js.executeScript("arguments[0].setAttribute('value', 'testuser')", input); // Get value attribute after setting String value = input.getAttribute("value"); System.out.println("Value after setting: " + value); } finally { driver.quit(); } } }
Always prefer getAttribute to check element properties instead of reading visible text when testing attributes.
To change attributes, use JavaScript execution because Selenium WebDriver does not provide a direct method.
Remember to close the browser with driver.quit() to free resources.
Get attributes to verify element properties.
Set attributes using JavaScript execution in Selenium.
Use these to simulate user input and check element states in tests.