マウスが Web ページのテキストまたは表示されているテキストに移動すると、ドロップダウン リストから表示されるオプションの 1 つを選択してクリックしたいと考えていました。
したがって、基本的には、マウスを下の html ページの「参照」というテキストに移動すると、「ページ」、「ブログ」などの別のオプションが表示されます。
したがって、「参照」を選択またはクリックするために(Selenium 2.21.0で)使用します:
driver.findElement(By.xpath("//a[@id='browse-menu-link']/span")).click()
.
ID を知らなくても残りのオプションを選択できる方法はありますか (ID が変更されたり、名前が変更されたりする可能性があるため)。インデックスごとに別のオプションを移動して選択できますか?
つまり、私の要件は、ドロップダウンに 4 つのオプションまたは 5 つのオプションが存在できることです。「参照」テキストの下にある限り、名前は気にしません。
HTMLページでは、マウスを動かしたり「参照」でクリックしたりすると表示されるこれらの非表示のオプションには、次のようなクラス名があります。
ajs-drop-down hidden
同じクラス名を持つ他のドロップダウンの下に他の非表示のオプションもあるため、クラス名で要素を選択するとエラーが発生します。
HTMLコード/ページは次のとおりです。
<head>
<body id="com-test" class="" onload="placeFocus()">
<div id="full-height-container">
<fieldset class="hidden parameters">
<fieldset class="hidden parameters">
<div id="header" class="">
<form id="quick-search" class="quick-search" action="/dosearchsite.action" method="get">
<fieldset>
<legend>Quick Search</legend>
<input id="quick-search-query" class="quick-search-query placeholded" type="text" size="25" name="queryString" autocomplete="off" accesskey="q">
<input id="quick-search-submit" class="quick-search-submit" type="submit" value="Search">
<div class="aui-dd-parent quick-nav-drop-down"></div>
</fieldset>
<fieldset class="hidden parameters">
<input id="quickNavEnabled" type="hidden" value="true">
</fieldset>
</form >
<ul id="header-menu-bar" class="ajs-menu-bar">
<li class="normal ajs-menu-item">
<a id="browse-menu-link" class="browse trigger ajs-menu-title" href="#">
<span>
**<span>Browse</span>**
</span>
</a>
<div class="ajs-drop-down hidden" hidden="" style="">
<ul id="browse-menu-link-leading" class="section-leading first">
<li class="">
<a id="space-pages-link" class="" title="Attachments: 5" href="/pages/listpages.action? key=UNI">
**<span>Pages</span>**
</a>
</li>
<li class="">
<a id="space-blogposts-link" class="" title="Attachments: 5" href="/pages/viewrecentblogposts.action?key=UNI">
**<span>Blog</span>**
</a>