私は、入力ボックスのブラーイベントをテストするために、selenium 2.24 firefoxドライバを使用しています。現在のところ、私は入力ボックスにsendKeysを送信した後、セレンが入力ボックスのぼかしをトリガーするために別の領域をクリックさせていますが、これは良い方法ではないと思いますが、誰かがこれをテストする良い方法を知っていますか?セレンドライバー:どのようにぼかしをテストする?
多くのありがとうございます。
私は、入力ボックスのブラーイベントをテストするために、selenium 2.24 firefoxドライバを使用しています。現在のところ、私は入力ボックスにsendKeysを送信した後、セレンが入力ボックスのぼかしをトリガーするために別の領域をクリックさせていますが、これは良い方法ではないと思いますが、誰かがこれをテストする良い方法を知っていますか?セレンドライバー:どのようにぼかしをテストする?
多くのありがとうございます。
私はリルの調査をしました。私は、火災イベントがセレン2.0ではサポートされていないことを知りました。 detailsを参照してください。 ように、コードのこの作品は、私の仕事:適切にぼかしなどのイベントをトリガしませんwebdriverを
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());
希望今、これはあなたを助けます)
残念なことに、このメソッドを使用して例外をリードします: ........... \t java.lang.reflect.Constructor.newInstance(Constructor.java:513) org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:188)org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:145)で \t org.openqa.seleniumで \tで\t。 remote.RemoteWebDriver.execute(RemoteWebDriver.java:472) org.openqa.selenium.remote.RemoteWebDriver.executeScript(RemoteWebDriver.java:381) org.openqa.selenium.internal.seleniumemulation.JavascriptLibrary.callEmbeddedHtmlUtilsで\t(JavascriptLibrary.java:82) – Mike
セレン。ただし、手動でトリガーすることはできます。 jqueryを使用していると仮定します:
firefoxWebDriver.executeScript("$('#yourID').blur()");
でこの方法はまた、HtmlUnitDriverために働きます、ChromeDriver、SafariDriver、およびInternetExplorerDriverが含まれます。 – Merkidemis
"elementId"を関連要素IDに置き換えます。それは私のためにうまく動作します。 "ドライバー"はあなたのセレンドライバーです
JavascriptExecutor jsexec =(JavascriptExecutor)driver; jsexec.executeScript( "document.getElementById( '" + elementId + "')。onblur();");
ありがとう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());
希望します。
一部の要素には、テスト目的で適切なディスクリミネータ(たとえば、テストでバインドしたいidや別のCSSセレクタ)がありません。
幸いにも、activeElementの概念が存在します。要素のぼかし機能があるのであれば、あなたは、これをテストする(jQueryのまたは類似の際に依存しない)ネイティブJavaScriptの方法をテストしたいどのようなことです:
driver.ExecuteScript("!!document.activeElement ? document.activeElement.blur() : 0");
これはonBlurイベントのために働いていた場合、私は覚えていないが、 try webElement.sendKeys(Keys.RETURN); – Maciek
C#を使用している場合は、文字列の最後に 'tab'という文字を挿入して要素に送ることができます。' ele.SendKeys( "my string \ t") ' –
someelement.sendKeys(" \ t " )また、Javaで、最短の解決策 – cocorossello