在我的一個Selenium測試用例中,我嘗試確保某些頁面無法訪問。相反,應該給出HTTP返回碼403。不要停止HTTP錯誤403
然而,這裏硒終止測試執行與以下異常:
com.thoughtworks.selenium.SeleniumException: XHR ERROR: URL = http://user:[email protected]/admin Response_Code = 403 Error_Message = Forbidden
任何方式來解決呢?
在我的一個Selenium測試用例中,我嘗試確保某些頁面無法訪問。相反,應該給出HTTP返回碼403。不要停止HTTP錯誤403
然而,這裏硒終止測試執行與以下異常:
com.thoughtworks.selenium.SeleniumException: XHR ERROR: URL = http://user:[email protected]/admin Response_Code = 403 Error_Message = Forbidden
任何方式來解決呢?
好像我來回答這個問題我自己...
我現在圍繞着「開放」與try ... catch塊調用。在那裏,如果它包含403代碼和XHR ERROR,我將解析異常消息。對我來說似乎不是很乾淨,但它工作。
我不知道你在用什麼語言,但我想你可以通過指示Selenium在打開頁面時忽略狀態碼來解決這個問題。
在Ruby:
@browser.remote_control_command('open', [url, 'true'])
在C#:
((DefaultSelenium)selenium).Processor.DoCommand("open", new string[]{url, "true"}))
我相信,在硒行李箱行爲是現在忽略默認的狀態代碼。所以,你可以嘗試構建它,看看它是否適合你。
我正在使用java客戶端庫。目前的穩定版本沒有這樣的附加參數。從源頭編譯目前不是一個真正的選項(嚴格的項目計劃):-( – Sebi 2010-05-06 17:45:56
我正在嘗試使用PHPUnit測試HTTP 403錯誤。我檢查了PHPUnit Selenium擴展代碼,發現驅動程序一收到錯誤響應就立即結束會話,並且似乎沒有辦法繞過此功能。
最後我用一個try-catch解決方案並重新啓動硒會議:
try {
$this->open('restricted_url');
$this->assertTitle('The page cannot be displayed');
} catch (PHPUnit_Framework_Exception $e) {
$this->start();
}
當硒會話重新啓動時,所有的會話信息丟失,因爲是可以預料的,所以你需要再次建立您的會話,以便運行更多測試:
$this->loginAsGuest();
try {
$this->open('admin_url');
$this->assertTitle('The page cannot be displayed');
} catch (PHPUnit_Framework_Exception $e) {
$this->start();
$this->loginAsGuest();
}
沒有人有任何想法嗎? – Sebi 2010-04-29 06:29:19