0

リストタグをループしてすべての要素を収集し、特定の文字列と一致する場合は特定のアイテムをクリックしようとしています。

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

<ul multiple="multiple" name="optionsTab" taborder="1" class="focus">
   <li value="2" selected="selected">option1</li>
   <li value="5" selected="selected">option2</li>
   <input id="form-3-input-5" name="optionsTab" type="hidden" value= "2,5">
</ul>

Java コード:

webdriver1.findElement(By.xpath("//ul/li[1]")).click(); 

option1 を直接クリックすると、elementNotFoundException が発生します。

li タグを見つけてリストにアクセスする最善の方法は何ですか?

4

3 に答える 3

1

最も単純なケースは、最初にリストを見つけてから、Webelemebt list = driver.findElement(By.name("optionsTab"));そのリスト内の要素を見つけることですList<Webelement> elements = list.findElements(By.xpath("//li"));

次に、コレクション内の各要素を反復処理して、必要な要素を見つけることができます。

于 2013-10-02T08:15:19.343 に答える
1

以下のXPATHを使用することもできます

 //ul[@name='optionsTab']/li[1]
于 2013-10-02T08:20:38.997 に答える
0

たとえば、次の CssSelector アプローチを使用することもできます。

webdriver1.findElement(By.CssSelector("ul[name='optionsTab']>li[value='2']")).Click();

ElementNotFound 例外が発生し続ける場合、この要素はまだロードされていますか? いつでも要素を待つことができますか?

于 2013-10-02T11:57:38.450 に答える