11

セレン2.24Firefoxドライバーを使用して、入力ボックスのぼかしイベントをテストしています。現在、入力ボックスにsendKeys移動した後、セレンに別の領域をクリックさせて、入力ボックスのぼかしをトリガーします。

しかし、それは良い方法ではないと思います、誰かがこれをテストするためのより良い方法を知っていますか?

どうもありがとう。

4

5 に答える 5

6

Selenium WebDriver は、blur などのイベントを適切にトリガーしません。ただし、手動でトリガーすることはできます。jquery を使用していると仮定します。

firefoxWebDriver.executeScript("$('#yourID').blur()");

またはjqueryなし:

firefoxWebDriver.executeScript("document.querySelector('#yourID').blur()");
于 2012-12-14T21:19:07.300 に答える
5

ちょくちょく調査してきました。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());

これがあなたに役立つことを願っています)

于 2012-09-09T21:38:17.957 に答える
1

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());

それが役に立てば幸い。

于 2014-10-30T12:58:58.683 に答える