セレン2.24
Firefoxドライバーを使用して、入力ボックスのぼかしイベントをテストしています。現在、入力ボックスにsendKeys
移動した後、セレンに別の領域をクリックさせて、入力ボックスのぼかしをトリガーします。
しかし、それは良い方法ではないと思います、誰かがこれをテストするためのより良い方法を知っていますか?
どうもありがとう。
セレン2.24
Firefoxドライバーを使用して、入力ボックスのぼかしイベントをテストしています。現在、入力ボックスにsendKeys
移動した後、セレンに別の領域をクリックさせて、入力ボックスのぼかしをトリガーします。
しかし、それは良い方法ではないと思います、誰かがこれをテストするためのより良い方法を知っていますか?
どうもありがとう。
Selenium WebDriver は、blur などのイベントを適切にトリガーしません。ただし、手動でトリガーすることはできます。jquery を使用していると仮定します。
firefoxWebDriver.executeScript("$('#yourID').blur()");
またはjqueryなし:
firefoxWebDriver.executeScript("document.querySelector('#yourID').blur()");
ちょくちょく調査してきました。Selenium 2.0 では fire イベントがサポートされていないことがわかりました。詳細を参照してください。だから、このコードは私のために働いた:
driver.get("http://www.onliner.by/");
String cssSelctr= "div.b-top-search-box input[id=\"g-search-input\"]";
WebElement testElement=driver.findElement(By.cssSelector(cssSelctr));
testElement.sendKeys("fvsdfs");
JavascriptExecutor js = (JavascriptExecutor) driver;
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("var x = $(\'"+cssSelctr+"\');");
stringBuilder.append("x.blur();");
js.executeScript(stringBuilder.toString());
これがあなたに役立つことを願っています)
eugene.polschikov に感謝します。呼び出す関数を変更して、機能さtriggerHandler
せる必要がありました。以下を参照してください。「element-id」を要素の ID に置き換えてください。
JavascriptExecutor jsexec = (JavascriptExecutor) driver;
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("var x = $('" + element-id + "');");
stringBuilder.append("x.triggerHandler('blur');");
jsexec.executeScript(stringBuilder.toString());
それが役に立てば幸い。