3

いくつかのテストにSeleniumIDEを使用しており、オートコンプリートから指定されたオプションを選択するためにSeleniumIDEを使用しようとしています。私の問題は、オートコンプリートがに組み込まれてい<ul>て、2つの<li>可能性が同じであるということです。指定されたクリック方法はli?Seleniumに「最初をクリックするli」または「li「apples」というテキストでクリックする」と言う方法は?私が見つけたいくつかの方法を試しましたが、すべて他のタイプのSelenium用であり、SeleniumIDEでは役に立ちません。

事前に感謝し、私の悪い英語をお詫びします!

コードは次のとおりです。

<ul class="ui-autocomplete ui-menu ui-widget ui-widget-content ui-corner-all" role="listbox" aria-activedescendant="ui-active-menuitem" style="z-index: 1003; top: 360.683px; left: 549.5px; display: block; width: 401px;">
  <li class="ac_item ui-menu-item" role="menuitem">
    <a class="clearfix ui-corner-all" tabindex="-1">
      <span class="c1">
        <b>Apple</b>
        <br>
        <span class="small secondary">Apples</span>
        </span>
      </span>
    </a>
  </li>
  <li class="ac_item ui-menu-item" role="menuitem">
    <a class="clearfix ui-corner-all" tabindex="-1">
      <span class="c1">
        <b>Orange</b>
        <br>
        <span class="small secondary">Oranges</span>
        </span>
    </span>
    </a>
  </li>
</ul>
4

1 に答える 1

3

Selenium APIは、これを実現するためのいくつかの方法を提供します。select従来のドロップダウンがないため、コマンドを使用できません。オートコンプリートの2番目の要素をクリックする2つのソリューションを次に示します。

ソリューションをテストするためにこのJSFiddleを作成しました。クリックした要素が赤に変わります。

オプション1: CSSロケーターを使用します。

| Command               | Target                                               |
| open                  | http://jsfiddle.net/ansonhoyt/GYJW9/embedded/result/ |
| waitForElementPresent | css=ul.ui-autocomplete                               |
| click                 | css=ul.ui-autocomplete li.ui-menu-item:nth-child(2)  |

注:実行速度は速く、ほとんどの人はCSSに慣れていますが、この例では、対象のブラウザーがCSS3のn番目の子セレクターをサポートしている必要があります。

オプション2: XPathロケーターを使用します。

| Command               | Target                                               |
| open                  | http://jsfiddle.net/ansonhoyt/GYJW9/embedded/result/ |
| waitForElementPresent | css=ul.ui-autocomplete                               |
| click                 | //ul[contains(@class,'ui-autocomplete')]/li[2]       |

注:XPathはほとんどの人にとってなじみがなく、特にIEではCSSロケーターに比べて非常に遅くなる可能性があります。

その他のアイデアについては、要素の検索と使用可能なSeleneseコマンドに関するSeleniumIDEのドキュメントを確認してください。

于 2012-11-19T18:03:18.417 に答える