Selenium WebDriver查找第n个元素

use*_*783 5 selenium xpath 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);
}
Run Code Online (Sandbox Code Playgroud)

错误是:

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

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

so *_*ead 8

例如,使用[]引用第n个元素

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

其中n是元素编号


小智 2

由于 html 片段不是完整的视图,因此无法建议所使用的 xpath 是否正确。根据此处介绍的内容,可以建议采取以下措施来推进

  1. 尝试使用 xpather(firefox 插件)来检查使用的 xpath 是否返回您尝试单击的正确图像。
  2. 如果上述条件成立,则在 webdriver 尝试查找图像之前加载图像可能会出现计时问题。