2009-10-01 38 views
5

我們在MVC中有Web UI項目和自動化測試,我們使用Selenium,這是一個非常棒的工具。但是我在與Selenium舉辦活動時遇到了一些問題。Selenium RC和輸入控制事件

場景: 我有一個文本框,當輸入任何-ve值時,我們希望+ ve值和冒泡錯誤(javascript),我們從該文本框中打開標籤或在頁面的任何位置點擊。

它與正常的用戶與網站的交互正常工作,但使用硒時,我無法實現此行爲。我將一些文本與Selenium.Type('elementId', - ve值)事件不會被解僱,並且錯誤不會冒泡。

我嘗試使用FireEvent(「textboxId」,「模糊」),但它不工作。 唯一的解決方法是將焦點放在文本框上,添加一些值,使用FireEvent(「textbox」,「blur」),然後將焦點放在其他某個文本框上。

有沒有人有任何想法來解決這個問題?

回答

1

您的解決方法聽起來不是一個糟糕的選項。當你關注領域,然後改變內容,然後你模糊(聚焦在其他領域)是與用戶完全相同的交互。

另一種選擇(我仍然更喜歡專注於其他領域)替代方法是使用getEval觸發驗證字段的JavaScript函數。您可以檢查該怎麼做這個教程: http://www.theautomatedtester.co.uk/seleniumtraining/Selenium_JavaScript.htm

4

我能夠通過調用

  • 類型(「ID = textboxid」獲得與硒RC Java客戶端這方面的工作,「NEWVALUE」 );

然後

  • fireEvent( 「ID = textboxid」, 「模糊」);

你有沒有得到任何關於「blur」事件是否被解僱的跡象?我想知道這個定位者是不是可以正確地開展活動。不管你使用什麼小技巧來讓它工作,爲了避免在每一個領域都做到這一點,你應該用一個RC客戶端將你的2-3個調用包裝在一個函數中,或者在一個步驟中使用register some user extensions如果您使用的是Selenium IDE。

0

「模糊」是一個偉大的發現!謝謝。

我的問題有點不同。以下是我如何使用「模糊」(parent)下拉列表,該列表不會回發來填充第二個(子)下拉列表(例如州和縣)。

  1. Selenium.Focus(「id = drpdwnState」);
  2. Selenium.Select(「id = drpdwnState」,「label = Michigan」);
  3. Selenium.FireEvent(「id = drpdwnState」,「blur」);
  4. Selenium.Focus(「id = drpdwnCounty」);
  5. 硒。選擇(「id = drpdwnCounty」,「label = Grand Traverse」);

希望這可以幫助別人。 乾杯!