0

私は webdriver の使用の初心者です。これが私が使用しているコードです。ドロップダウンをクリックして、そのドロップダウンに提供されている値のリストをもう一度クリックします。助けてください、他のスレッドを探しましたが、それらは異なります。

<ul>
  <li class="size select required">
    <div id="dk_container_partNumber-55414" class="dk_container dk_theme_size dk_focus"
    tabindex="" style="display: block;">
      <a class="dk_toggle" style="width: 162px;">
        <div class="dk_options">
          <ul class="dk_options_inner">
            <li class="dk_option_current">
              <li class="">
                <a data-dk-dropdown-value="605930243">S</a>
              </li>
              <li class="">
                <a data-dk-dropdown-value="605930251">M</a>
              </li>
              <li class="">
                <a data-dk-dropdown-value="605930260">L</a>
              </li>
              <li class="">
                <a data-dk-dropdown-value="605930278">XL</a>
              </li>
              <li class="">
                <a data-dk-dropdown-value="605930286">XXL</a>
              </li>
          </ul>
        </div>
    </div>
    <select id="partNumber-55414" class="size-select" name="partNumber" style="display: none;">
      <option data-property="CAT_SELECTSIZE" selected="selected" value="">Select Size</option>
      <option value="605930243">S</option>
      <option value="605930251">M</option>
      <option value="605930260">L</option>
      <option value="605930278">XL</option>
      <option value="605930286">XXL</option>
    </select>

「S」を選択したいのですが、ドロップダウンにも同じことが表示されている必要があります。ドロップダウンをクリックして、以下のコードを使用してオプションのリストを表示できます。

driver.findElement(By.xpath("//(more xpath goes here)/ul/li[@class = 'size select required']/div/a/span")).click();

以下のコードで「S」を選択しようとしましたが、無駄でした:

Select SizeDropdown = new Select(driver.findElement(By.xpath("//(more xpath  here)/ul/li[@class = 'size select required']/select")));
//driver.findElement(By.xpath("(//(more xpath here)/ul/li[@class = 'size select required']/select)/option[2]")).click();
//Below line gets and clicks the first option of Select Size 'S'
//SizeDropdown.getFirstSelectedOption().click();
//SizeDropdown.selectByVisibleText("S");
//SizeDropdown.selectByIndex(1);
//SizeDropdown.selectByValue("S");

各コマンドを個別に(コメントを外した後)試しましたが、ドロップダウンのラベルとして「S」が選択されているかのように見えませんでした。

4

1 に答える 1

0

xpath を単純化しようとしましたか?

最初にクリックして展開することなく、ドロップダウンからオプションを選択するには、次のようなものを使用します。

Select select = new Select(driver.findElement(By.xpath("//select[@id='partNumber-55414']"));
select.selectByVisibleText("S");
于 2013-01-31T17:55:53.463 に答える