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

firepath をインストールして調べてみます firepath でパスを見つけます

于 2015-09-24T13:38:18.963 に答える
0

You can do this

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

TABLEこれらの管理者が複数いる場合に備えて、ID を追加しましたSPAN。CSS セレクターは、ADMINusersForm:mainTable:nの子孫 ()SPANを持つID (#) を持つ要素を検索として読み取ります。title

する必要がある場合とない場合がありtrim()ます。trim()簡単で、後で必要だとわかったのに気づかなかったときに見つけて追加する時間を節約できるので、いつもそうするところまで来ました。:)

于 2015-09-24T00:22:36.630 に答える