首页 > 解决方案 > 无法使用 getText() 获取 webelements 文本框值列表;和 getAttribute();

问题描述

我已经制作了存储的webelements列表,在该列表中,一些元素将通过 get 获取文本框值,getText();而另一些将通过getAttribute();.here 我做了一个 for 循环提到该webelementgetAttribute();列表并获取每个webelement的文本框值,但在这里我我正在获取文本框值其余元素我无法获取这些文本框值。是否有任何 IF 条件必须满足这两种方法,即和获取文本框值,如果我只使用我为该方法获取的文本框值其他元素显示空白getAttribute();getText();gettext();getAttribute();并打印 HERE IS THE CONSOLE O/P null

    List<WebElement> e=new ArrayList<WebElement>();
    e.add(sign.empchequedatetext);
    e.addAll(sign.wagestlistvalues);
    e.addAll(sign.taxesvalue);
    e.addAll(sign.additionalincomelistvalues);
    e.addAll(sign.otherdeductionslistvalues);
    e.add(sign.netpayvalue);
    int calculatevaluessize= e.size();
    System.out.println("the total value size: "+calculatevaluessize);


    System.out.println("taxes size is: " + taxesvalues+"||"+wages+"||"+add+"||"+deduc);
    List<WebElement> emplist = s.getOptions();
    int empsize = emplist.size();
    System.out.println("emp size is: " + empsize);

    try {
        for (int i = 0; i < empsize; i++) {
            WebElement emp = emplist.get(i);
            emp.click();
            String empname = emp.getText();
            excel.setCellData(path, "Sheet2", i + 1, 0, empname);
            Thread.sleep(1000);

            for (int j = 0; j < calculatevaluessize; j++) {
                WebElement taxesvalue = e.get(j);
                Thread.sleep(1000);

                    String values = taxesvalue.getAttribute("value");
                    System.out.println("the calculate pay values are: "+values);
                    excel.setCellData(path, "Sheet2", i + 1, j + 1, values);

                }

请在我的第二个 for 循环中提及任何 if 条件,我已经尝试过,但是我必须放置什么类型的条件

标签: selenium-webdriver

解决方案


您可以创建一个简单的方法来返回一件事或另一件事:

private String getRowText(WebElement taxesvalue){
    if (taxesvalues.getText() == null){
        return taxesvalue.getAttribute("value");
    }
    return taxesvalues.getText();
}

此方法应替换您的taxesvalue.getAttribute("value");


推荐阅读