Mik*_*ike 9 selenium selenium-firefoxdriver
我正在使用selenium 2.24 firefox驱动程序来测试输入框的模糊事件.目前在我将Keys发送到输入框之后,我让selenium点击另一个区域来触发输入框模糊,但是我认为这不是一个好方法,任何人都知道更好的测试方法吗?
非常感谢.
selenium WebDriver 无法正确触发诸如模糊之类的事件。但是,您可以手动触发它们。假设您正在使用 jquery:
firefoxWebDriver.executeScript("$('#yourID').blur()");
Run Code Online (Sandbox Code Playgroud)
或者没有 jquery:
firefoxWebDriver.executeScript("document.querySelector('#yourID').blur()");
Run Code Online (Sandbox Code Playgroud)
某些元素没有适合测试目的的鉴别器(例如,您希望在测试中绑定到的 id 或其他 CSS 选择器)。
幸运的是,存在activeElement的概念。因此,如果元素的模糊功能是您想要测试的,那么测试它的原生 javascript 方式(不依赖于 jQuery 或类似的)是:
driver.ExecuteScript("!!document.activeElement ? document.activeElement.blur() : 0");
Run Code Online (Sandbox Code Playgroud)
我做了一个小小的调查。我发现 selenium 2.0 不支持火灾事件。查看详情。所以这段代码对我有用:
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());
Run Code Online (Sandbox Code Playgroud)
现在希望这对你有帮助)
| 归档时间: |
|
| 查看次数: |
18756 次 |
| 最近记录: |