私は、セレンを使用した自動化 Web アプリケーションの経験から、次の仮定を持っています。私が知っているように、セレンは目に見えない(非アクティブである)と見なされるため、ドロップダウンオプションと直接対話することはできません。それが常に機能する方法は、これにjsを使用することです。まず、cssセレクターで適切に要素を見つけ、firepathで検証します(ffoxのfirebugへのアドオン)
したがって、css sselector を取得します。
String css=....;
public void jsClickByCss(String cssLocator){
JavascriptExecutor js = (JavascriptExecutor) driver;
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("var x = $(\'"+cssLocator+"\');");
stringBuilder.append("x.click();");
js.executeScript(stringBuilder.toString());
}
jsClickByCss(css);
Builder 、高度なユーザー対話 APIを使用して別のアプローチを試すこともできます。アイデアは非常に単純です。まず、ドロップダウンをロールダウンして、クリックしたい要素が表示されるようにし、driver.manage.timeoutで待機してから、必要なドロップダウン要素を選択してクリックする必要があります。
WebElement mnuElement;
WebElement submnuElement;
mnEle = driver.findElement(By.Id("mnEle")).click();
sbEle = driver.findElement(By.Id("sbEle")).click();
Actions builder = new Actions(driver);
// Move cursor to the Main Menu Element
builder.MoveToElement(mnEle).perform();
// Giving 5 Secs for submenu to be displayed
Thread.sleep(5000L);
// Clicking on the Hidden SubMenu
driver.findElement(By.Id("sbEle")).click();
ここでいくつかの追加情報を読むことができます
これがうまくいくことを願っています)