2016-05-01 13 views

回答

0

帶有用戶名和密碼的URL的格式似乎是錯誤的。你有憑據的前一個WWW,嘗試將其更改爲類似:

String url = "http://"+ user + ":" + pass + "@www.xyz.org/auth.html"; 
0

它不顯示任何字段作爲填充也不試圖填補他們在

而且它也不應該!當你使用這樣的URL時,HTTP規範說,客戶端向服務器發送一個GET請求,並在URL中嵌入一些憑證。服務器如何處理這取決於你如何實現服務器。

現在你可以在理論上實現你的服務器發回一個登錄頁面,其細節預填充,但我不會。

  • 將用戶詳細信息放入URL中是不安全的。它們將顯示在服務器端日誌中。

  • 這是可怕的不安全如果您使用的是HTTP URL,那麼這意味着URL將通過網絡傳輸。黑客很容易窺探未加密的連接。

  • 這不是大多數用戶通常會使用的功能。 (我們也不希望他們看到上面的內容!)

  • 這不是一個理智的人想要實現(或使用)RESTful API的方式。


解決方案?

  • 如果您正在爲現有服務器實施Selenium測試,那麼您需要按照設計的方式驅動服務器的登錄序列。發送觸發服務器的請求給你一個登錄頁面。模擬填寫字段並點擊「登錄」。從響應中提取會話cookie。

  • 如果您控制服務器(即您可以更改它),則可以設計用於編程式身份驗證的替代Web API;即您的Selenium測試不需要模擬填寫和提交登錄表單的情況。但請安全地做。用戶名和密碼只能通過HTTPS傳輸。

+0

好吧,這是有道理的。所以這對於100%安全並不是非常重要的,但可以說你想測試2個用戶名密碼組合:一個是否有效,另一個是否不起作用,是否只使用第一個URL,如果它不是工作,模擬填充他們在使用硒?我如何測試它是否工作並且不起作用? – swedishfished

+0

我不明白你在說什麼。你真正的用例是什麼?這是爲了網站瀏覽很多不同的網站嗎? –

+0

說實話,我只是想第一次嘗試登錄這個表格,只看看有什麼作用。硒是做這件事的最佳方式還是我可以用另一種方式發送請求? – swedishfished