2015-04-22 60 views
1

我正在嘗試使用Selenium來測試HTML窗體。該頁面通過在每個文本字段(這是HTML中的輸入標籤)上使用javascript的onFocus()事件來驗證輸入數據。因此,我的代碼需要確保onFocus()在我與文本字段交互時被觸發,就像真正的用戶填寫表單一樣。如何讓onFocus()使用硒啓動

我希望下面的代碼觸發此事件:

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

但是,onFocus()不會觸發事件。我試過手動點擊元素

this.textfield.click() 

但這也行不通。我也嘗試使用操作類

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

但是,這也沒有給我任何運氣。

Selenium有沒有辦法確保onFocus()事件被執行?

回答

2

您可以在瀏覽器會話中執行JavaScript以顯式激活onFocus()。這段代碼是用C#編寫的,但是在Java綁定中也必須有類似的東西。

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