Довольно часто, когда вы запускаете автоматические проверки с помощью 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();
} }
Дальнейшее чтение: