如何获取列表中Web元素的属性?

时间:2018-10-14 21:21:55

标签: java list selenium

PHOTO

我在getAttribute()上遇到错误,提示无法解决方法。此方法通常与WebElement对象一起使用,但由于某种原因,该方法无效。这是代码还检查图片。

public class DatePickerFragment extends android.app.DialogFragment implements DatePickerDialog.OnDateSetListener {

@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    // Use the current date as the default date in the picker.
    final Calendar c = Calendar.getInstance();
    int year = c.get(Calendar.YEAR);
    int month = c.get(Calendar.MONTH);
    int day = c.get(Calendar.DAY_OF_MONTH);

    // Create a new instance of DatePickerDialog and return it.
    return new DatePickerDialog(getActivity(), this, year, month, day);
}

@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
String dateString = Integer.toString(dayOfMonth) +
                "/" + Integer.toString(month+1) +
                "/" + Integer.toString(year);
    //note- Return dateString back to NewWorkoutItemFragment, using setmDate
}
}

1 个答案:

答案 0 :(得分:1)

如果您看到类似的内容(在OP的照片中以红色下划线表示方法名称),则可能意味着您认为的对象类型实际上不是。

在您的代码中,radio实际上是一个列表。 element是该列表中的元素。您应该具有:

for (WebElement element: radio) {
    String checked = element.getAttribute("checked");  // change radio to element here
    boolean isSelected = checked != null  && 
            checked.contentEquals("true") ? true : false;
    Assert.assertTrue(isSelected);
}

为帮助将来解决此问题,请考虑选择更好的变量名。例如,如果您有东西列表,则使变量为复数。在这种情况下,它将为您提供线索,说明您无法在名为getAttribute()radioButtons的变量上调用radioButtonsList

请记住,有时候最好的文档是简洁的代码。