Selenium webdriver 无法使用getText()获取webelements文本框值列表;和getAttribute();

Selenium webdriver 无法使用getText()获取webelements文本框值列表;和getAttribute();,selenium-webdriver,Selenium Webdriver,我已经列出了存储的webelements,在该列表中,一些元素将通过getgetText()获取文本框值和一些将通过getAttribute()

我已经列出了存储的webelements,在该列表中,一些元素将通过get
getText()获取文本框值和一些将通过
getAttribute()getAttribute()webelement列表中,并获取每个webelement文本框值,但这里我得到的是
getAttribute()文本框值包含
getText()的其余元素我无法获取那些文本框值。
是否存在必须同时满足两种方法的IF条件,即
gettext()
getAttribute()并获取文本框值,如果我只使用该方法获取的方法文本框值,其余元素将显示空白,这里是控制台O/P

    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);

                }
List e=new ArrayList();
e、 添加(sign.empchequedatetext);
e、 addAll(sign.wagestlistvalues);
e、 addAll(符号taxesvalue);
e、 addAll(符号additionalincomelistvalues);
e、 addAll(sign.otherDeclarationsListValues);
e、 添加(签名为netpayvalue);
int calculatevaluessize=e.size();
System.out.println(“总值大小:“+CalculateValueAssize”);
System.out.println(“税大小为:“+taxesvalues+”|||“+”工资+“|||“+add+”||“+deduc”);
List emplist=s.getOptions();
int empsize=emplist.size();
System.out.println(“emp大小为:“+empsize”);
试一试{
对于(int i=0;i

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

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

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

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

您好,您提到的上述条件对包含的元素getText()有效,但对getAttribute()无效;对于包含它的元素在Console中显示空白,可能是其他属性,即包含有效字符串的属性?能否共享一个getText working WebElement和一个getAttribute WebElement?在上述列表中,我已将webelements存储在可通过getText()或getAttribute()获取的属性中;我单独尝试了每个元素,因为我制作了一个列表和for循环,必须提到if else条件,该条件可以为getText和getAttribute的每个webelement解决。如果我使用getText();必须获取getAttribute的元素在控制台中带有“null”,如果我使用getAttribute();必须获取getText的元素带有空白。它在textbox中有值,但在控制台中显示空白。这可能是因为页面在第一个循环中有一定的刷新。这意味着,空值可能是因为WebElement而不是属性。在获取属性之前,是否可以打印元素?