2010-01-02 56 views
2

任何想法,即使在焦點事件之後,我都可以觸發模糊效果,這樣它就不會發生「鬆散耦合」(動作逐個發送到硒服務器)。 讓我解釋一下:火災模糊和焦點緊密耦合?

在Selenium RC中,通過fireEvent(定位器,「模糊」)和fireEvent(定位器,「焦點」)激發模糊和焦點。但是,在模糊事件發送給瀏覽器之後,焦點事件不會直接跟隨javascript命令堆棧中的blur事件。這是一個問題,在以下情況下:檢測一組小部件的模糊,如一組文本框。

我該做什麼:所有文本框共享相同的偵聽器,並且當發生模糊時,我簡單地運行一個附加命令來檢查焦點事件是否被其中一個文本框捕獲,如果是,則忽略模糊。我在JavaScript中運行的這個附加命令在所有等待命令運行後自動執行,在這種情況下,焦點命令是這些等待命令之一。

返回Selenium RC:在Selenium服務器觸發模糊事件後,它會等待下一個命令,在這種情況下是焦點事件並將觸發它。但是,正如您所瞭解的那樣,同時,addiontal命令已被觸發,並且未檢測到新的焦點事件。因此,檢測並處理羣組模糊,但是在這種情況下,模糊處理不正確,因爲在模糊之後不會直接觸發焦點,例如瀏覽器會執行此操作....

我希望你理解我的問題,因爲這有點難以解釋。 任何想法如何解決這個問題?所以我可以測試正確的行爲? (沒有我的驗證發生太早,因爲一組 - 模糊未被正確捕獲)

我想要解決這個問題的方法:發送一段JavaScript的Selenium服務器將被評估,並將後兩個事件觸發彼此。還是不??而你我該怎麼做?

回答

2

我相信你正在尋找:

selenium.getEval( 「[我的JavaScript這裏]」);

您可以發送一個您選擇的JavaScript代碼片段以通過瀏覽器進行評估,這應該使您能夠將焦點和模糊鏈接到一個命令中。

+0

謝謝,很久以前我解決了這個問題。如果我沒有記錯的話,我按照你的建議做了同樣的事。 – edbras 2011-04-12 08:00:37