J'écris des tests avec Selenium2 / WebDriver et je veux vérifier si une requête HTTP renvoie un HTTP 403 interdit.
Est-il possible d'obtenir le code d'état de la réponse http avec le pilote Web?
J'écris des tests avec Selenium2 / WebDriver et je veux vérifier si une requête HTTP renvoie un HTTP 403 interdit.
Est-il possible d'obtenir le code d'état de la réponse http avec le pilote Web?
En un mot, non, il n'est pas possible d'utiliser l'API Selenium WebDriver. Cela a été discuté ad nauseum dans le suivi des problèmes pour le projet et la fonctionnalité ne sera pas ajoutée à l'API.
Vous pouvez utiliser le proxy BrowserMob pour capturer les demandes et les réponses avec HttpRequestInterceptor
. Voici un exemple en Java:
// Start the BrowserMob proxy
ProxyServer server = new ProxyServer(9978);
server.start();
server.addResponseInterceptor(new HttpResponseInterceptor()
{
@Override
public void process(HttpResponse response, HttpContext context)
throws HttpException, IOException
{
System.out.println(response.getStatusLine());
}
});
// Get selenium proxy
Proxy proxy = server.seleniumProxy();
// Configure desired capability for using proxy server with WebDriver
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.PROXY, proxy);
// Set up driver
WebDriver driver = new FirefoxDriver(capabilities);
driver.get("http://stackoverflow.com/questions/6509628/webdriver-get-http-response-code");
// Close the browser
driver.quit();
Je ne suis pas sûr que ce soit ce que vous recherchez, mais mon objectif est un peu différent: vérifier si l'image distante existe et je n'aurai pas d'erreur 403; vous pouvez donc utiliser le même principe que ci-dessous:
public static boolean linkExists(String URLName){
try {
HttpURLConnection.setFollowRedirects(false);
HttpURLConnection con = (HttpURLConnection) new URL(URLName).openConnection();
con.setRequestMethod("HEAD");
return (con.getResponseCode() == HttpURLConnection.HTTP_OK);
}
catch (Exception e) {
e.printStackTrace();
return false;
}
}
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.