Атата - Как проверить скрытый флажок в таблице?

Я использую Atata Framework и работаю по следующему сценарию: в элементе TD есть таблица с флажком. Я хочу иметь возможность ссылаться Click() метод на флажок, но не может заставить его работать правильно.

Усеченный HTML выглядит следующим образом:

<table data-v-c4547572="" class="invGrid">
        <tr data-v-c4547572="" row-id="3ed5bcf4-473d-43ae-991a-ffe36d5e0a53" class="row-index-0">
            <td data-v-c4547572="" class="column-index-0 checkbox-col">
                <input data-v-c4547572="" type="checkbox" element-id="3ed5bcf4-473d-43ae-991a-ffe36d5e0a53" class="">
                <label data-v-c4547572="" for="3ed5bcf4-473d-43ae-991a-ffe36d5e0a53"></label>
            </td>
            <td data-v-c4547572="" class="column-index-1">
                <span data-v-c4547572="" class="val-name">Some text</span>
                <span data-v-c4547572="" class="arrow pull-right dsc"></span>
            </td>
        </tr>
    </tbody>
</table>

Код, который я использую:

// The page class:

[FindByCss(".invGrid")]
public Table<GroupsRow, Page> Inventory { get; set; }

// The row class:

public class GroupsRow : TableRow<Page>
{
    [FindByIndex(0)]
    public CheckBox<Page> CheckBox { get; set; }

    [FindByCss(".val-name")]
    public Text<Page> Text { get; set; }
}

В качестве дополнительного примечания, ссылаясь Exists() на флажок выдает false:

inv.CheckBox.Exists(); // false

Любая идея, как сделать флажок для работы?

1 ответ

Решение

Я могу догадаться, что ваш флажок на самом деле скрыт, и <label> используется в качестве оболочки для пользовательского рендеринга. Поскольку почти все элементы управления в Atata ищут видимые элементы по умолчанию, вы можете указать Visibility:

[FindByIndex(0, Visibility = Visibility.Any)]
public CheckBox<Page> CheckBox { get; private set; }

Следует найти флажок. Но если щелкнуть по нему не получится (так как он может быть скрыт), вы можете добавить свойство для метки и щелкнуть по нему:

[FindFirst]
public Label<Page> CheckBoxLabel { get; private set; }
Другие вопросы по тегам