2013-09-21 49 views
-1

我使用Selenium webdriver(Java)。如何從硒webdriver從captcha獲取數據

我需要測試註冊表單,但在提交之前,圖像框(captcha)正在出現,但每次執行時都會被更改。我想知道如何從圖像獲取數據(captcha)。

任何人都可以幫到我嗎?

回答

14

如果驗證碼來自您的控制環境,您可能需要實施某種方法,指示您處於測試環境中,並使驗證碼系統返回一個已知值或指示什麼是期望值是。

另一方面,如果驗證碼來自另一個不受控制的源,那麼您可能是我們的運氣。在那個時候,你和垃圾郵件發送者在同一條船上,他們在不斷的軍備競賽中編寫能夠直觀地解析驗證碼的軟件。

UPDATE

我覺得有必要澄清一些添加到這個問題,答案和評論提出的想法。基本上你正在處理以下情況之一(請注意,當我說'你的'時,我指的是你,你的公司,客戶等):

1)你的表單,你的驗證碼系統:如果這是在這種情況下,您的最佳解決方案是與您的開發人員一起爲驗證碼添加「測試」模式,返回已知值或頁面中指示期望值應該是什麼的附加信息。如果您能夠使用由您或其他人編寫的可成功「讀取」驗證碼圖像的工具,那麼您的系統已損壞。如果您可以在測試模式下執行此操作,那麼阻止其他人(垃圾郵件發送者,黑客等)以完全相同的方式繞過您的驗證碼是什麼。 2)您的表單,第三方驗證碼系統:如果是這種情況,您的最佳解決方案是再次查看系統是否有一些您可以使用的「測試」模式。我自己對這些系統沒有任何經驗,但總的來說,猜測主要系統存在測試方法。 Google搜索{驗證碼系統名稱}自動測試應該返回一些關於如何進行系統測試的好提示。如果沒有什麼好處,那麼你的下一個賭注就是實現你自己的,內部的,測試,虛擬驗證碼系統,它具有一些已知的價值,並使你的驗證碼提供者可配置,以便你可以在測試/ dev中指向你的測試系統/ etc和你的真實系統在生產中。

3)另一種形式,未知驗證碼系統:我要在這裏做一個信仰的飛躍,並假設這不是你的情況,但爲了完整性,我將包括它。如果這是你的情況,那麼你根本就沒有測試任何東西,只是出於自己的理由尋求繞過別人安全機制的幫助。如果是這種情況,請在不那麼認真的網站上尋求您的幫助。

+0

我想知道使用什麼方法從圖像中獲取值(驗證碼) – SATENDRA

+0

如果有任何計算值的希望,第一步就是了解您正在使用的驗證碼系統。你能否更新你的問題與你打電話給哪個驗證碼系統?開發人員總會有機會加入可供您使用的測試選項。 –

+0

我在網頁上看到帶有文字的新圖像(驗證碼)。 (它不重複)如何知道您使用的驗證碼系統? – SATENDRA

1

驗證碼是爲了防止機器人或自動化代碼而引入的。沒有選項可以自動執行驗證碼。

1。您可以給自動化等待一段時間,以便用戶可以輸入驗證碼。

2.如果項目處於測試url意味着,您可以要求您的系統管理員和開發人員禁用驗證碼驗證。

可能這可以幫助你,但我din't試試這個..

開發商將生成的驗證碼隨機值,他們會轉換成價值形象,以及他們將存儲用於比較輸入輸入的會話中的值與驗證碼相匹配。

所以如果可能的話,你可以把這個會話的值作爲輸入。