FF48 と Selenium 3 でマリオネットをオンにして新しい geckodriver を試してみましたが、テストでどの要素のドロップダウン リストのオプションも選択できません。私のテストは、FF45 および他のすべてのブラウザーで正常に動作します。マリオネット ドライバーのみ、ドロップ ダウン リストのオプションを選択しません。
new Select(driver.findElement(By.Id("topic"))).selectByVisibleText(item);
マリオネットで gecko ドライバーを使い始めるまで、コードは正常に動作します。
以下は、マリオネットで geckodriver をセットアップするために使用しているコードです。
System.setProperty("webdriver.gecko.driver", System.getProperty("user.dir")+"\\geckodriver.exe");
ProfilesIni profile = new ProfilesIni();
FirefoxProfile myprofile = profile.getProfile("DefaultProfile");
myprofile.setPreference("network.proxy.type", ProxyType.AUTODETECT.ordinal());
DesiredCapabilities dc=DesiredCapabilities.firefox();
dc.setCapability(FirefoxDriver.PROFILE, myprofile);
dc.setCapability("marionette", true);
driver = new FirefoxDriver(dc);
要素からオプションを選択しようとしても、テストは例外をスローしません。
new Select(driver.findElement(By.Id("topic"))).selectByVisibleText(item);
この問題を調査した結果、FF48 にはバグがあり、firefox ngithly 51 で修正されていることが判明しました。FF51 のリリースを待つ間に FF48 で動作させるための回避策はありますか?