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();
}
}
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