【问题标题】:count element in webelement计算 webelement 中的元素
【发布时间】:2018-03-20 01:42:01
【问题描述】:

我想计算硒中的元素。 使用 xpath //*[@class='z-listbox-body']/table/tbody[2]/tr 时,我得到 3 个匹配节点。

但我的代码是 12 而不是 3:

public String countTable(){
    List<WebElement> located_elements = driver.findElements(By.xpath("//*[@class='z-listbox-body']/table/tbody[2]/tr"));
    int count = 0;
    for(WebElement located_element:located_elements){
        count ++;
    }
    String s = String.valueOf(count);

    return s;
}

【问题讨论】:

  • located_elements.size() 是否也返回 12 或 3?
  • 那么哪一个是正确的使用 xpath //*[@class='z-listbox-body']/table/tbody[2]/tr 或您的代码
  • 当您在 ChromeDevelopers Tools 中使用 XPath 表达式进行搜索时,匹配元素的数量是多少?如何查看::stackoverflow.com/questions/22571267/…
  • 弗兰克,我得到 3 个匹配节点,但我的代码得到 12 个 .:(
  • 在调试代码的时候,看看列表的内容,这个列表里面是什么?这个 webelements 长什么样子?

标签: selenium countelements


【解决方案1】:

请尝试使用以下代码:

public String countTable(WebDriver dirver){ 
    List located_elements = driver.findElements(By.xpath("//[@class='z-listbox-body']/table/tbody[2]/tr")); 
    return String.valuseOf(located_elements.size());

}

【讨论】:

  • 你改变了什么 - 删除了 List 上的输入并使用 .size() 而不是手动计算列表的内容?你能解释一下为什么 for 循环会给出错误的答案吗?
  • 当我在网络结果中搜索 3 个匹配节点时。我尝试列出位于_elements = driver.findElements(By.xpath("//[@class='z-listbox-body']/table/tbody[2]/tr"));返回 String.valuseOf(located_elements.size());但我的代码得到 12 而不是 3:
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-07
  • 2015-02-11
  • 2019-10-20
  • 2019-08-05
  • 1970-01-01
相关资源
最近更新 更多