Selenium WebDriver查找第n个元素

时间:2012-10-11 03:19:11

标签: xpath selenium webdriver selenium-webdriver

我有点困在一个问题,我无法修复它我必须访问我的页面上的第n个图像,它出现在HTML中的表格中。我需要点击图片分别为每一行移动到下一个屏幕

我尝试了各种解决方案,但由于我使用的是findElement(by)语法,因此无法使用这些帮助运行我的代码

我的代码是:

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

错误是:

No such element exception. Unable to locate element: {"method":"xpath", selector"://img[@title='User Management'])[2]

Selenium IDE可以识别我的元素,但不能识别selenium web驱动程序! 请建议

2 个答案:

答案 0 :(得分:8)

使用[]引用第n个元素

WebElement  edit = driver.findElement(By.xpath("(//*[@class='grid']//img)[n]"));

其中n是元素编号

答案 1 :(得分:2)

由于html代码段不是一个完整的视图,如果使用的xpath是正确的,它无法提供建议。根据此处的内容,可以建议以下内容继续前进

  1. 尝试使用xpather(firefox插件)检查是否使用了xpath 返回您尝试单击的正确图像。
  2. 如果超过上述条件,则可能存在加载图像的时序问题 在webdriver尝试找到它之前。