最初にロードされないウェブページでは、HTML select
(つまりドロップダウン)で作業しています。値がロードされるのは、onfocus
JSイベントが実行されたときだけです。 GWTコントロールであることに注意してください。Seleniumを使用してGWTのドロップダウンリストにフォーカスを合わせてクリックしてください
ここにドロップダウンのDOMレンダリングがあります。実際にドロップダウンに値をロードonfocus
イベント注:
<select id="Field1" class="select not_disabled" onchange="clearOperators(Operator1); addOperators(Field1,Operator1); adjustInput(Field1, 1);" onfocus="loadValues(Field1);" style="width:20em;" name="Field1">
</select>
問題は、ウィンドウにフォーカスがある場合を除き要素上でのクリックが登録取得されていないということです。したがって、値はロードされません。
私は私のコードでこれを持っており、これは効果なしで実行されます。
// bring the focus on the dropdown
((JavascriptExecutor) webDriver).executeScript("return document.getElementById('Field1').focus;", dropdownElement);
// click on it to load the values
dropdownElement.click();
は、偶数番目の要素にイベントを焼成する古い方法を試してみました。動作しませんでした:
JavascriptLibrary javascript = new JavascriptLibrary();
javascript.callEmbeddedSelenium(webDriver, "triggerEvent", dropdownElement, "blur");
を私はまた、これらの提案のいくつかを試してみたが、どれも助けなかっ:
Correct way to focus an element in Selenium WebDriver using Java
https://groups.google.com/forum/#!msg/selenium-users/jk59XG2TQk8/xbaskp9uFnQJ
は、誰かが私は値をロードするために何ができるかを提案でしたドロップダウン?私はFirefox 47でSelenium 2でJavaを使用しています。