3

たとえば、複数選択リスト フィールドから特定の optgroup の下のオプションを選択したい

<select id="xyz">
   <optgroup label="Group1">
      <option value="1">pick1</option>
      <option value="2">pick2</option>
   </optgroup>
   <optgroup label="Group2">
       <option value="3">pick3</option>
       <option value="4">pick4</option>
   </optgroup>
</select>

ピックリスト フィールドが上記のような場合、使用できます

new Select(driver.findElement(By.id("xyz"))).selectByVisibleText("pick1");
new Select(driver.findElement(By.id("xyz"))).selectByVisibleText("pick2"); 

上記から optgroup -Group1 の下にあるすべてのオプションを選択します。

ここで、Group1 に存在するすべてのオプションを把握しているため、上記のように選択できます。

しかし、私の要件は動的であり、optgroup-Group1 の下のすべてのオプションを選択する必要があります。

グループ1と2を含むすべてのオプションを動的に選択したい場合

それから私は使うことができます

new Select(driver.findElement(By.id("xyz"))).getOptions();

すべてのオプションをリストとして取得し、それを配列として保存し、配列を使用してすべてのオプションを 1 つずつ選択できます

しかし、Group1 や Group2 などの特定の optgroup だけですべてのオプションを取得するにはどうすればよいでしょうか?

4

1 に答える 1

11

xpathとを使用する必要がありfindElementsます。

driver.findElements(By.xpath("xpath = "//select[@id='xyz']/optgroup[@label='Group1']/option")))
于 2013-01-05T11:03:06.767 に答える