Как получить значение из таблицы?

<table id="usersForm:mainTable:n" class="extdt-table-layout res-table" cellspacing="0" cellpadding="0" border="0" width="100%;" style="">
   <colgroup id="usersForm:mainTable:colgroup:body">
      <tbody id="usersForm:mainTable:tb">
         <tr id="usersForm:mainTable:n:0" class="extdt-firstrow rich-extdt-firstrow extdt-row-selected rich-sdt-row-selected res-table-selected" onmousedown="handleMouseClick(event)">
            <td id="usersForm:mainTable:1:name" class="extdt-cell rich-extdt-cell">
               <div class="extdt-cell-div">
                  <div onmouseup="if (showMenu(this)) {document.lkjasdf = event; selectContextMenu('ENTTUSER','MbUsersSearch');}">
                     <span title="ADMIN" onmouseup="if(!rightButton && isSelectedRow(this,rightButton) && false && !disableContext) {setDisableContext(true); beforePrepareDefaultAction('ENTTUSER','MbUsersSearch');}">ADMIN</span>

Используя шаблон htmlelements, я хочу получить значение из таблицы, т.е. убедиться, что таблица содержит значение "ADMIN". В htmlelements умеет работать с таблицами "из коробки". Я написал:

import ru.yandex.qatools.htmlelements.element.Table;
public class MainTableForm extends HtmlElement {
    @FindBy(id = "usersForm:mainTable:n")
    private Table table;
}

Тогда я не знаю, какой метод помогает получить значение.

3 ответа

Ты можешь использовать List<List<String>> getRowsAsString() способ получить все значения из вашей таблицы. Тогда просто проверьте эту коллекцию с помощью приспособления для подколенного сухожилия. Таким образом, окончательный код будет довольно простым:

assertThat(table.getRowsAsString(), contains(contains(equalTo("ADMIN"))));

Вы можете сделать это

WebElement adminSpan = driver.findElement(By.cssSelector("#usersForm:mainTable:n span[title='ADMIN']"));
System.out.println(adminSpan.getText().trim());

Я добавил TABLE идентификатор на случай, если есть более одного из этих администраторов SPANs. Селектор CSS читает как найти элемент с идентификатором (#) usersForm:mainTable:n у которого есть потомок () SPAN с title АДМИН.

Вы можете или не должны trim(), Я дошел до того, что я всегда trim() потому что это легко, и это экономит мое время на поиск и добавление этого позже, когда я узнаю, что мне это нужно, но не осознал этого.:)

Попробуй выяснить установив firepath узнай путь по firepath

Другие вопросы по тегам