2

私の HTML テーブルには、値「1」、「2」、および「3」のドロップダウン メニューを含むセルが 5 列目にあります。

これまでのところ、そのセルに到達できるポイントにいます:

ICollection<IWebElement> table = driver.FindElements(By.Id("highVolumeSearchResults_group"));
List<IWebElement> elements = table.ToList();                
ICollection<IWebElement> cell_action = driver.FindElements(By.XPath(".//tbody/tr/td[5]"));

Cell_action- ドロップダウンオプション/値「1」、「2」、「3」を含む変数です)。どうすればよいかわかりませんが、ドロップダウン メニューから任意の値を選択できるようにする必要があります。
誰でもヒントを教えてもらえますか?

その背後にあるコード:

 </table>
      <table id="highVolumeSearchResults_group" class="highVolumeSearchResults">
      <thead>
      <tbody>
        <tr>
         <td class="title letter" rowspan="1">W</td>
         <td>
            <a id="group-name-244" href="/Portal/Workgroup/Details?id=244">WorkGroup_Cats</a>
         </td>
         <td>0</td>
         <td>12/28/2012 4:14:01 PM</td>
         <td>
           <select id="244" onchange="CommitAction(244, this.options[this.selectedIndex].value, this)">
              <option value="">------</option>
              <option value="edit">Edit Users</option>
              <option value="rename">Rename</option>
              <option value="delete">Delete</option>
           </select>
        </td>
      </tr>
 </tbody>
 </table>

問題は 'select id="244" ' の部分です。これは動的に生成されるため、ID を使用しないでください。DropdownBox オプションを考え出す必要がありますが、まだ方法がわかりません。私も続けようとしました:

IWebElement cell_action1 = cell_action.First(); and then 
SelectElement DropDownBox_action = 
    new SelectElement(cell_action1.FindElement(
        By.XPath("//select[contains(, 'CommitAction')]")));  

これは私にはうまくいきませんでした。

4

1 に答える 1

0

それを使用SelectElementするのは実際には非常に簡単です。

var dropdown = driver.FindElement(By.XPath(".//tbody/tr/td[5]/select"));

var selectElement = new SelectElement(dropdown);

selectElement.SelectByValue("rename"); // or another value (ex: edit, delete)

アップデート

属性に文字列を<select>含む要素を取得する場合は、次のXPath 式を使用します。"CommitAction"onchange"//select[contains(@onchange, 'CommitAction')]"

于 2013-01-03T17:09:11.050 に答える