2011-05-10 25 views
0

我在Ubuntu 10.04的Selenium Grid上運行Selenium 2.0b4dev,使用Python代碼編寫測試用例。我一直在使用基本的HTTP身份驗證到一個特定的網站工作,並通過快速谷歌搜索發現我的問題可以通過添加行self.selenium.add_custom_request_header(「Authorization」,「Basic%s 「%_encoded)(中間有一個適當的換行符,當然符合PEP 8)。如何設置Selenium瀏覽器將Selenium的集線器作爲代理服務器在Selenium Grid上的python中處理?

不幸的是,顯然也通過我的搜索,我發現爲了讓這行代碼工作,我需要配置我的瀏覽器(無論用於在網格上運行測試用例)將Selenium的(自動運行,顯然是?)代理服務器作爲該瀏覽器的代理使用。但顯然我需要修改Firefox(或IE)啓動器的配置文件以自動使用該代理,因爲這些Selenium Grid測試用例的整個意義在於它們不應該需要用戶干預,而且我幾乎沒有不知道該怎麼做。我剛剛使用「ant launch-hub」和「ant launch-remote-control」,然後在集線器上運行python程序來導入selenium和unittest。

如果有人能幫上忙,那就太棒了。

回答

1

我寫了一篇關於如何在Ruby中做到這一點的文章。它鏈接到測試自簽名證書的補充文章,併爲您提供啓動Selenium所需的一組標誌。

http://mogotest.com/blog/2010/06/23/how-to-perform-basic-auth-in-selenium

爲了通過電網傳送參數傳遞給底層RC服務器,您需要使用類似:

ant -DseleniumArgs="-trustAllSSLCertificates" launch-remote-control

回覆:瀏覽器。 。 。如果您現在通過trustAllSSLCertificates,Firefox將自動啓用代理模式。否則,你需要使用* firefoxproxy。 IE需要使用* iexploreproxy或配置代理的自定義HTA啓動器(文章鏈接到我們開源的一個,但需要更新才能使用2.0 beta 4)。

+0

通過「Firefox將自動啓用代理模式」,你的意思是我必須修補Firefox啓動程序,就像你在「如何接受Selenium中的自簽名SSL證書」頁面中做的一樣,然後通過 - DseleniumArgs?或者我可以只傳遞該標誌並使其無需在最新版本的Selenium Grid中進行修補即可正常工作?我試圖在遙控器上傳遞該標誌,但它仍然無法工作,而且我花了很多時間找到您的兩篇文章,結果無用地尋找我應該修補的位置和內容,以使Firefox對代理進行修復。 (也許我需要在集線器上添加-avoidproxy) – wanderso 2011-05-11 19:51:35

+0

哦,除了感謝您的回覆之外,我還應該問您是否在網格上使用Selenium 1.X或2.X。我讀了一些話,說明你的聰明解決方案在2.X中不再工作,但是出於對我沒有意義的原因。 – wanderso 2011-05-11 20:54:47

+0

我需要爲該帖子添加註釋。自寫它以來,我將該補丁應用到trunk中的* firefox啓動器。它被添加到2.0a5左右。如果你想在HTA模式下使用它,IE仍然需要一個自定義啓動器。 – nirvdrum 2011-05-11 22:13:38

相關問題