Как отловить 404 ошибки в Selenium с помощью Perl? - PullRequest
0 голосов
/ 18 февраля 2011

У меня есть сценарий Perl, который использует Selenium для извлечения HTML-документа с именем foo, который не существует (404 не найден). По умолчанию сценарий выводит ошибку и завершается, так что «bar» никогда не бывает распечатаны. Я ищу способ заставить его продолжать, вместо этого печатать "бар".

Вот что у меня есть. Код (называемый foo.pl):

#!/usr/bin/perl

use strict;
use WWW::Selenium;

my $sel = WWW::Selenium->new( host => "localhost", 
                  port => 4444, 
                  browser => "*chrome", 
                  browser_url => "http://www.google.com/" );
$sel->start;

$sel->open("http://www.google.com/foo.html") 
print "bar";

Вот сообщение, которое напечатано:

Error requesting http://localhost:4444/selenium-server/driver/?cmd=open&1=http%3A%2F%2Fwww.google.com%2Ffoo.html&sessionId=bc9c086eef804a7c8a0090674333e4c7:
XHR ERROR: URL = http://www.google.com/foo.html Response_Code = 404 Error_Message = Not Found

Я просмотрел все, но не нашел ответа на это. Спасибо!

Ответы [ 2 ]

1 голос
/ 18 февраля 2011

Я не уверен в реализации в Perl, но в Java Selenium-RC имеет режим захвата трафика, определенный как selenium.start("captureNetworkTraffic=true");, который позволит вам захватывать ответы HTTP, включая коды ошибок.После получения кода ошибки вы всегда можете возобновить выполнение ...

Здесь является отличным ресурсом о том, как собирать и обрабатывать / форматировать эту информацию после получения.Он использует Python, но должен дать вам начало.

0 голосов
/ 19 февраля 2011

В качестве альтернативы, вы можете создать (Test: :) WWW :: Mechanize объект в вашем коде (вместе с вашим объектом Selenium), передавая ему тот же URL, который вы хотите, чтобы Selenium проверял, и получая статус от объекта ответаобъекта механизации.Это простой подход, я использую его для запросов HEAD, которые я выполняю перед выполнением запросов GET для селена.

(хотя не будет работать для запросов javascript / ajax)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...