我正在使用selenium WebDriver语法.我知道,在基于selenium server的语法中,您可以通过执行以下操作来触发javascript事件:
Selenium selenium = new DefaultSelenium("localhost", server.getPort(),
"*iexplore", "http://www.eviltester.com");
selenium.fireEvent("lteq30", "blur");
Run Code Online (Sandbox Code Playgroud)
如何在使用WebDriver创建的应用程序中执行相同操作(例如,FirefoxDriver)?
pre*_*sto 18
不幸的是,Selenium WebDriver设计者明确决定不在 Selenium 2中包含此功能.
这是一个故意决定不在WebDriver中包含此功能,因为它通常是一个解决合成事件不正常的黑客.我们宁愿通过为原生事件提供强大支持来消除这种需求,因此我们将继续改进这一需求.用户永远不会触发焦点事件,他们会单击表单控件.这也是你的测试应该做的.
话虽如此,您可以执行您想要的任何JavaScript代码.因此,您应该研究如何使用javascript触发事件.看一下这个StackOverflow问题的灵感.
然后你可以做这样的事情:
FirefoxDriver driver = new FirefoxDriver();
driver.ExecuteScript("[your fire event javascript code]");
Run Code Online (Sandbox Code Playgroud)
我相信你可以创建一个包装函数来基本完成同样的事情fireEvent.
小智 5
另一种方案:
((JavascriptExecutor) driver).executeScript("return document.getElementById('element').blur()");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27332 次 |
| 最近记录: |