如何使用Selenium启动onFocus()

时间:2015-04-22 15:39:05

标签: java javascript selenium selenium-webdriver

我正在尝试使用Selenium测试HTML表单。该页面通过在每个文本字段(onFocus()中的输入标记)上使用javascript的HTML事件来验证输入数据。因此,每当我与文本字段交互时,我的代码都需要确保onFocus()被触发,就像真实用户填写表单一样。

我希望以下代码能够触发此事件:

this.textfield.clear();
if (value != null) {
    this.textfield.sendKeys(value);
}

但是,onFocus()事件不会触发。我试过手动点击元素

this.textfield.click()

但这也行不通。我也尝试过使用Actions类

this.textfield.clear();
Actions action = new Actions(driver);
action.moveToElement(this.textfield).click().sendKeys(value.toString()).perform();

但这也没有给我任何运气。

Selenium中是否有任何方法可以确保执行onFocus()事件?

1 个答案:

答案 0 :(得分:2)

您可以在浏览器会话中执行JavaScript以显式触发onFocus()。这段代码在C#中,但Java绑定中也必须有类似的东西。

((IJavaScriptExecutor)driver).ExecuteScript(string.Format("$('#{0}').onFocus()", elementId));