Selenium - 错误消息是:table.rows [row]未定义

时间:2010-09-27 16:03:37

标签: selenium

请参阅以下示例。每当我在行中使用i计数器时,我会看到以下错误消息:

  

错误:命令执行失败。请在http://clearspace.openqa.org的论坛中搜索日志窗口中的错误详细信息。错误消息是:table.rows [row]未定义

public static String verifyLinkedSubmissions(String articleTitle){
  int rowCount=0;
  String trueString="Submission is found";
  String falseString="Submission is NOT found";
  rowCount=browser.getXpathCount("//TABLE[@id='LinkedWithRepeater']/TBODY/TR").intValue();

  for(int i=1; i<=rowCount; i++){
    String val=selenium.getTable("LinkedWithRepeater."+i+".4");
      if (val.equals(articleTitle)){
        log.info("Title name "+articleTitle+" is found");
        return trueString;
      }
  }

  log.error("Title name: "+articleTitle+" is NOT found in the Linked Submissions");
  return falseString;
}

如果我对行号进行硬编码,那么脚本运行顺畅。但我想要 在案例中搜索特定的文章标题并验证它是否存在于表格中。

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

这里的问题是getTable命令中的行和列引用必须从0开始。您需要更改for循环,使其从0开始,如下所示:

for(int i=0; i<rowCount; i++) {
  String val=selenium.getTable("LinkedWithRepeater."+i+".4");
  if (val.equals(articleTitle)){
    log.info("Title name "+articleTitle+" is found");
    return trueString;
  }
}

请注意,如果您未从0开始考虑,则可能还需要将列引用更改为3.

此外,在您的代码示例中,您在使用Selenium API命令时同时使用browserselenium。我认为这是一个复制/粘贴错误,但您可能需要仔细检查。

有关xTable命令的详细信息,请参阅http://release.seleniumhq.org/selenium-core/1.0/reference.html#storeTable