Error handling Don';无法在HTTP错误403上停止

Error handling Don';无法在HTTP错误403上停止,error-handling,selenium,selenium-rc,Error Handling,Selenium,Selenium Rc,在我的一个Selenium测试用例中,我试图确保某些页面不能被访问。相反,应该给出HTTP返回码403 但是,Selenium在此终止测试执行,但出现以下异常: com.thoughtworks.selenium.SeleniumException:XHR错误:URL=Response\u code=403错误\u消息=禁止 有什么办法解决这个问题吗?看来我必须自己回答这个问题 我现在用try…catch块来包围“open”调用。在这里,如果异常消息包含403代码和XHR错误,我将对其进行解析。

在我的一个Selenium测试用例中,我试图确保某些页面不能被访问。相反,应该给出HTTP返回码403

但是,Selenium在此终止测试执行,但出现以下异常:

com.thoughtworks.selenium.SeleniumException:XHR错误:URL=Response\u code=403错误\u消息=禁止


有什么办法解决这个问题吗?

看来我必须自己回答这个问题


我现在用try…catch块来包围“open”调用。在这里,如果异常消息包含403代码和XHR错误,我将对其进行解析。在我看来不是很干净,但它可以工作。

我不知道您使用的是什么语言,但我认为您可以通过指示Selenium在打开页面时忽略状态代码来解决这个问题

在Ruby中:

@browser.remote_control_command('open', [url, 'true'])
在C#中:


我相信Selenium trunk中的行为现在默认情况下会忽略状态代码。所以,您可以尝试构建它,看看它是否适合您。

我试图使用PHPUnit测试HTTP 403错误。我检查了PHPUnit Selenium扩展代码,发现驱动程序在收到错误响应后立即结束会话,并且似乎没有办法绕过此功能

我最终使用了try-catch解决方案并重新启动了Selenium会话:

try {
    $this->open('restricted_url');
    $this->assertTitle('The page cannot be displayed');
} catch (PHPUnit_Framework_Exception $e) {
    $this->start();
}
重新启动Selenium会话时,所有会话信息都会丢失,这是意料之中的,因此您需要重新构建会话以运行更多测试:

$this->loginAsGuest();

try {
    $this->open('admin_url');
    $this->assertTitle('The page cannot be displayed');
} catch (PHPUnit_Framework_Exception $e) {
    $this->start();
    $this->loginAsGuest();
}

我正在使用java客户端库。当前的稳定版本没有这样的附加参数。目前,从源代码编译不是一个真正的选择(紧凑的项目计划):-(
$this->loginAsGuest();

try {
    $this->open('admin_url');
    $this->assertTitle('The page cannot be displayed');
} catch (PHPUnit_Framework_Exception $e) {
    $this->start();
    $this->loginAsGuest();
}