Selenium WebDriver Find nth element
13,077
Solution 1
Use [ ] to reference the nth element for instance
WebElement edit = driver.findElement(By.xpath("(//*[@class='grid']//img)[n]"));
Where n is the element number
Solution 2
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
- Try using xpather (firefox plugin) to check if the xpath used returns the right image you are trying to click.
- If above condition passes, then there could be timing issues for the image to load before webdriver tries to find it.
Author by
user1726783
Updated on June 04, 2022Comments
-
user1726783 about 2 years
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
-
Phillip about 8 yearsDoes anything look wrong with this locator? I am receiving an unexpected timeout using WebDriverWait.
locator = (By.XPATH, '(.//input[@type=text])[1])'
)