Hi,
In this post, you will see demonstration of "className" locator usage.
"classname" is one of the 8 locators supported by selenium, using it one can navigate to target page by performing click action(s).
For instance, Login to gmail @ https://mail.google.com/
Let's see how to identify the name locators of login elements for gmail web application.
Email or Phone input text input HTML with "name" locator
In this post, you will see demonstration of "className" locator usage.
"classname" is one of the 8 locators supported by selenium, using it one can navigate to target page by performing click action(s).
For instance, Login to gmail @ https://mail.google.com/
Let's see how to identify the name locators of login elements for gmail web application.
Email or Phone input text input HTML with "name" locator
<input type="email" class="whsOnd zHQkBf" jsname="YPqjbf" autocomplete="username" spellcheck="false" tabindex="0" aria-label="Email or phone" name="identifier" value="" autocapitalize="none" id="identifierId" dir="ltr" data-initial-dir="ltr" data-initial-value="" badinput="false" aria-invalid="false" xpath="1">
selenium identifies the above input element(Email or Phone) using "className" locator with the following java statement.
driver.findElement(By.className("whsOnd")).sendKeys("java.selenium2021@gmail.com");
Tap on the image to get better visibility: To avoid StaleElementReferenceException for other elements locators having the same class name , I am taking xpaths to find them, for instance , password has the same className i.e., class="whsOnd zHQkBf" so instead of having className for password taking xpath //input[@name='password']
classNameLocatorDemo.java
package selenium.locators.examples; import java.util.concurrent.TimeUnit; import org.openqa.selenium.By; import org.openqa.selenium.Keys; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; public class classNameLocatorDemo { public static void main(String[] args) { WebDriver driver; System.setProperty("webdriver.chrome.driver", "D:\\006_trainings\\chromedriver.exe"); System.setProperty("webdriver.chrome.silentOutput","true" ); driver = new ChromeDriver(); driver.navigate().to("https://mail.google.com/"); driver.manage().window().maximize(); //finding "Email or Phone" input text by clasName locator and enter value driver.findElement(By.className("whsOnd")).sendKeys("java.selenium2021@gmail.com"); // click on "Next" button - This is an xpath example that will be covered in later sessions driver.findElement(By.xpath("//span[@class='RveJvd snByac']")).click(); driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); // locate "Enter your password" text input with xpath locator and enter password say --> JavaSelenium2021 // If we take className for this input we will end up with // Exception in thread "main" org.openqa.selenium.StaleElementReferenceException: // stale element reference: element is not attached to the page document WebElement elePassword=driver.findElement(By.xpath("//input[@name='password']")); elePassword.sendKeys("JavaSelenium2021"); elePassword.sendKeys(Keys.TAB); elePassword.sendKeys(Keys.TAB); // click on "Next" button - This is again an xpath example. driver.findElement(By.xpath("//span[contains(text(),'Next')]")).click(); //close the driver //driver.close(); } }
No comments:
Post a Comment