一尘不染

如何激发selenium中的JS事件?

selenium

我正在使用Selenium WebDriver语法。我知道,在基于Selenium服务器的语法中,您可以执行以下操作来触发javascript事件:

Selenium selenium = new DefaultSelenium("localhost", server.getPort(),
            "*iexplore", "http://www.eviltester.com");
selenium.fireEvent("lteq30", "blur");

如何在使用WebDriver(例如FirefoxDriver)创建的应用程序中执行相同操作?


阅读 402

收藏
2020-06-26

共1个答案

一尘不染

不幸的是,Selenium
WebDriver设计人员明确决定不在
Selenium 2中包含此功能。

明智的决定是不将此功能包含在WebDriver中,因为通常它是解决合成事件行为不正常的黑客。我们宁愿通过为本地事件提供强大的支持来消除这种需求,因此我们将继续改进这种情况。用户永远不会触发焦点事件,他们将单击表单控件。这就是您的测试也应该做的。

话虽如此,您 可以 执行所需的任何JavaScript代码。因此,您应该研究 如何使用javascript触发事件

然后,您可以执行以下操作:

FirefoxDriver driver = new FirefoxDriver();
driver.ExecuteScript("[your fire event javascript code]");

我敢肯定,您可以创建一个包装函数,以基本上完​​成与相同的操作fireEvent

2020-06-26