我們最近開始使用Selenium測試基於Django的應用程序。測試在Linux上運行良好,但在Mac OS X上運行得很好。我們在這兩種情況下都使用Firefox作爲瀏覽器,並且花了我們一段時間(以及一些運氣)才發現兩種情況之間的重要區別是FF作爲前臺應用程序或作爲背景窗口運行。以下是Linux上發生的事情:如何在Mac OS X上使用Selenium進行測試時強制Firefox成爲前臺應用程序
- Selenium告訴Firefox進入用戶註冊頁面。
- Selenium填寫用戶名和無效電子郵件地址。
- Selenium將焦點從電子郵件地址字段更改爲同一頁面上的另一個字段(它恰好是搜索框,但這並不重要---所有重要的是焦點變化事件)。
- 網頁中的Javascript驗證碼注意到電子郵件地址無效,並在頁面中插入錯誤消息。
- Selenium檢測到錯誤消息並將測試標記爲已通過。
當我們在Mac OS X上運行,但是,步驟#4不會發生除非我們的測試運行時手動前臺火狐窗口---如果我們離開它在後臺(這是它在默認情況下出現),瀏覽器中的Javascript沒有得到焦點變化事件,所以錯誤信息從未插入到頁面的DOM中,所以Selenium超時等待,測試失敗。
當測試運行時,我們可以強制Selenium前臺瀏覽器,以便我們的Javascript能夠獲得我們想要的事件嗎?如果是這樣,怎麼樣?
你能發表你正在使用的確切代碼嗎? – Amey