【问题标题】:Find the sum of Amount in dynamic web-table when click on respective checkbox单击相应复选框时,在动态网络表中查找金额的总和
【发布时间】:2020-01-05 23:53:37
【问题描述】:

我的列名称为 Id 、名称、描述和金额,每行都有复选框。如果我选中复选框,则应汇总相应的金额并显示总值。网络表格上方还有 Received-Amount 文本框,Received-Amount 的值应从网络表格计算的金额中减去。

我已尝试阅读列表(Web 元素)中的复选框,但无法计算金额的总和。

List<WebElement> elements=driver.findElements(By.xpath("//*[@id=\"tableParent\"]/table/tbody/tr[1]/td[1]/span/input"));
    int rowsize=elements.size();
    int sum = 0;
    List<Integer> values = new ArrayList<Integer>();
    Boolean ischecked;
    for(int i=1; i< rowsize; i++){
        ischecked = driver.findElement(By.xpath("//table//tr[i]//input")).isSelected();
        if(ischecked)
        {  
            WebElement tdtext = driver.findElement(By.xpath("//table//tr[i]//td[6])).getAttribute(\"value\")"));
            String str = tdtext.toString();
            values.add(Integer.parseInt(str));
            //values.add(Integer.parseInt(driver.findElement(By.xpath("//table//tr[i]//td[6])).getText()"))));   
        }
    }

    for (int i: values) {
        sum += i;
    }
    System.out.println("Sum: " + sum);
     String expectedVal = driver.findElement(By.id("AVC")).getAttribute("value");
     System.out.println("ExpectedVal: " + expectedVal);

【问题讨论】:

  • 您确定下面会返回 webelements 列表吗?对我来说看起来像一个单一的元素。 List 元素=driver.findElements(By.xpath("//*[@id=\"tableParent\"]/table/tbody/tr[1]/td[1]/span/input"));

标签: java selenium-webdriver pom.xml


【解决方案1】:

该行的表达式不正确:

ischecked = driver.findElement(By.xpath("//table//tr[i]//input")).isSelected();

WebElement tdtext = driver.findElement(By.xpath("//table//tr[i]//td[6])).getAttribute(\"value\")"));

更改为:

ischecked = driver.findElement(By.xpath("//table//tr[" +i +"]//input")).isSelected();

WebElement tdtext = driver.findElement(By.xpath("//table//tr[" +i +"]//td[6])).getAttribute(\"value\")"));

【讨论】:

  • String tdtext =driver.findElement(By.xpath("//table//tr[" +i+"]//td[6]")).getAttribute("value");字符串 str = tdtext.toString(); values.add(Integer.parseInt(str));无法获得价值
  • 试试:String tdtext =driver.findElement(By.xpath("//table//tr[" +i+"]//td[6]")).getAttribute("innerHTML");String tdtext =driver.findElement(By.xpath("//table//tr[" +i+"]//td[6]")).getText();
  • stackoverflow.com/questions/57705383/…,你能帮我解决这个问题吗? @frianH
  • 遗憾的是,我不明白您对上述链接的问题,请根据您需要的具体内容创建新问题,您似乎需要提供 html 代码,您的意思是如何将id 定位在您的网络中。
  • 您现在可以检查一下吗,说明中是否清楚。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多