Reputation: 71
I am kinda stuck in a problem and am not able to fix it I have to access nth image on my page which comes in table inside HTML. I need to click on image to move to next screen respectively for each row
I have tried various solution provided here but since I am working with findElement(by) syntax I am not able to run my code with those assistances
My code is:
public void editUser(String userName)
{
System.out.println("in editUser 1");
int row = getCellRow(table, userName);
System.out.println("in editUser 2");
WebElement edit = driver.findElement(By.xpath("//*[@class='grid']/tbody/tr[2]/td[8]/a[1]/img"));
System.out.println("in editUser 3");
edit.click();
System.out.println("in editUser 4");
clickButton(closeButton);
}
Error is :
No such element exception. Unable to locate element: {"method":"xpath", selector"://img[@title='User Management'])[2]
Selenium IDE could recognize my element but not selenium web driver ! Please advice
Upvotes: 5
Views: 13689
Reputation: 2573
Use [ ] to reference the nth element for instance
WebElement edit = driver.findElement(By.xpath("(//*[@class='grid']//img)[n]"));
Where n is the element number
Upvotes: 8
Reputation: 136
Since the html snippet is not a complete view, its unable to advice if the xpath used is right. With what is presented here, could suggest the following to move forward
Upvotes: 2