5

我有点陷入问题并且无法解决它我必须访问页面上的第 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 驱动程序!请指教

4

2 回答 2

8

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

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

其中 n 是元素编号

于 2013-01-17T05:24:25.623 回答
2

由于 html 片段不是一个完整的视图,它无法建议使用的 xpath 是否正确。有了这里介绍的内容,可以建议以下内容继续前进

  1. 尝试使用 xpather(firefox 插件)检查使用的 xpath 是否返回您尝试单击的正确图像。
  2. 如果上述条件通过,则在 webdriver 尝试找到图像之前加载图像可能存在时间问题。
于 2012-10-13T15:42:42.267 回答