Wednesday, October 26, 2016

Different way to Find Web Elements in Selenium

There are different ways of finding the web element in Selenium. You can element id, name, class etc to get the desired element. I am giving here a Selenium Java code to write a common function to find the web element

public WebElement comFindElement(WebDriver driver,String identifier, String text) throws Exception
{
try
{
WebElement wb=null;
Class<?> driverClass = Class.forName(driver.getClass().getName());
Method getMethod = driverClass.getMethod("findElements", new Class[] {By.class });
getMethod.setAccessible(true);
By objid=null;
switch(identifier)
{
case "name":
objid=By.name(text);
break;
case "id":
objid=By.id(text);
break;
case "xpath":
objid=By.xpath(text);
break;
case "linktext":
objid=By.linkText(text);
break;
case "classname":
objid=By.className(text);
break;
case "cssselector":
objid=By.cssSelector(text);
break;
case "tagname":
objid=By.tagName(text);
break;
default:
break;
}

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
wblistElement = (List<WebElement>)getMethod.invoke(driver, objid);
for (WebElement element: wblistElement)
{
if(element.isDisplayed())
{
wb=element;
break;
}
}
return wb;
}
catch(Exception e)
{
e.printStackTrace();
}

No comments:

Post a Comment