3
<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;
}

然后我不知道哪种方法有助于获得价值。

4

3 回答 3

1

您可以使用List<List<String>> getRowsAsString()方法从表中获取所有值。然后只需使用 hamcrest 匹配器检查此集合。所以最终的代码将非常简单:

assertThat(table.getRowsAsString(), contains(contains(equalTo("ADMIN"))));
于 2015-09-24T11:28:21.303 回答
0

你可以这样做

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

我添加了TABLEid 以防万一这些 admin 存在SPAN多个。CSS 选择器读取为查找具有 id (#) 的元素,该元素具有ADMIN的usersForm:mainTable:n后代 () 。SPANtitle

您可能需要也可能不需要trim()。我已经到了这样的地步,trim()因为它很容易,而且当我发现我需要它但没有意识到它时,它可以节省我查找和添加它的时间。:)

于 2015-09-24T00:22:36.630 回答
0

尝试通过安装firepath找出路径通过firepath找出路径

于 2015-09-24T13:38:18.963 回答