Как получить код состояния ответа с помощью Selenium WebDriver

Довольно часто, когда вы запускаете автоматические проверки с помощью Selenium WebDriver, вы также хотите проверить код состояния ответа для ресурса, такого как веб-служба или другие веб-страницы на сайте. Вы также можете проверить на сайте неработающие ссылки во время выполнения скриптов Selenium WebDriver.

Давайте рассмотрим различные коды статуса HTTP:

2xx - ОК
3xx - перенаправление
4xx - ресурс не найден
5xx - ошибка сервера


В Selenium WebDriver нет прямого метода проверки кода состояния ответа, поэтому для этого мы должны использовать другую библиотеку. Мы можем использовать Apache HttpClient или я предпочитаю использовать Библиотека с гарантированным REST от Jayway

Чтобы получить код ответа с использованием REST-гарантированного, мы можем использовать:


import io.restassured.RestAssured; public class HttpResponseCode {
public int httpResponseCodeViaGet(String url) {

return RestAssured.get(url).statusCode();
}
public int httpResponseCodeViaPost(String url) {
return RestAssured.post(url).statusCode();
}
public static void main(String args[]) {
new HttpResponseCode().httpResponseCodeViaGet('http://www.google.com');
} }

Выход:

200

Чтобы проверить неработающие ссылки на странице при выполнении тестов Selenium WebDriver, мы можем использовать:

import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; import java.util.List; public class HttpResponseCode {
WebDriver driver;
int statusCode
public void checkBrokenLinks() {
driver = new FirefoxDriver();
driver.get('https://devqa.io');

//Get all the links on the page
List links = driver.findElements(By.cssSelector('a'));

String href;

for(WebElement link : links) {

href = link.getAttribute('href');

statusCode = new HttpResponseCode().httpResponseCodeViaGet(href);

if(200 != statusCode) {


System.out.println(href + ' gave a response code of ' + statusCode);

}
}
}
public static void main(String args[]) {
new HttpResponseCode().checkBrokenLinks();
} }

Дальнейшее чтение: