私はこのxpathを持っています://*[@id="someId::button"]
それを押すと、値のドロップダウンリストが表示されます。
今、私はリスト内のすべての要素が次のようなIDを持っていることを知っています:
//*[@id="someId--popup::popupItemINDEX"]
、ここで、INDEXは、1からオプションの数までの数値です。
クリックしなければならない値も知っています。
1つの質問は、ドロップダウンを生成するボタンのIDを常に知っているので、再利用可能なメソッドを使用してドロップダウン内のすべての要素を取得できますか?(複数のドロップダウンを操作する必要があります)
私が考えた方法は次のとおりです。次のように、初期IDのルートを取得します。
//*[@id="someId
次に残りを追加します:--popup::popupItem
。また、インデックスを追加する必要があり、次のようにtryブロックを使用できると思いました(予想よりも大きいインデックスを指定した場合の例外を回避するため)。
for(int index=1;index<someBiggerThanExpectedNumber;index++){
try{
WebElement aux= driver.findElement(By.xpath(builtString+index+"\"]"));
if(aux.getText().equals(myDesiredValue))
aux.click();
}catch(Exception e){}
}
私はwebdriverapiとjavaを使用していることに注意してください。
私が持っている最初の情報を踏まえて、これが機能するかどうか、そしてこれを行うためのより簡単な方法があるかどうかを知りたいです。
編集:私が提案した方法は機能しますが、より簡単な解決策として、受け入れられた答えを見る必要があります