Як атрымаць код стану адказу з Selenium WebDriver

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

Давайце разгледзім розныя коды стану HTTP:

2xx - Добра
3xx - перанакіраванне
4xx - Рэсурс не знойдзены
5xx - Памылка сервера


У Selenium WebDriver няма прамога метаду праверкі кода стану адказу, таму для гэтага нам трэба выкарыстоўваць іншую бібліятэку. Мы можам выкарыстоўваць Apache HttpClient альбо я аддаю перавагу выкарыстоўваць АДПАЧЫНЕНАЯ бібліятэка ад Jayway

Каб атрымаць код адказу з выкарыстаннем REST-assured, мы можам выкарыстоўваць:


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();
} }

Далейшае чытанне: