我正在尝试使用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()
事件?
答案 0 :(得分:2)
您可以在浏览器会话中执行JavaScript以显式触发onFocus()。这段代码在C#中,但Java绑定中也必须有类似的东西。
((IJavaScriptExecutor)driver).ExecuteScript(string.Format("$('#{0}').onFocus()", elementId));