Quando precisar testar todos os links em seu projeto, você pode fazer isso usando o Postman ou qualquer outra ferramenta de teste de API, mas há uma maneira mais fácil. Ao usar ferramentas de teste de API, você precisa escrever todas as conexões de link uma por uma e, quando os links mudam, você precisa editar todos os testes um por um novamente.
java- . pdf, , .
1: HTML : <a href="Adress"></a>
, - <a>
. :
List<WebElement> allLinks = driver.findElements(By.tagName(LINKS_TAG));
LINKS_TAG
- "a". .
2: URL-
String urlLink = link.getAttribute(LINKS_ATTRIBUTE);
LINKS_ATTRIBUTE
- "href"
3: HTTP- HTTP-
HttpConnection URL. Connection Timeout.
URL url = new URL(urlLink); HttpURLConnection httpURLConnect=(HttpURLConnection)url.openConnection(); httpURLConnect.setConnectTimeout(5000); httpURLConnect.connect();
: 100-199
: 200-299
: 300-399
: 400-499
: 500-599
, , 400, .
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.List;
public class FindAllBrokenLinks {
public final String DRIVER_PATH = "Drivers/chromedriver";
public final String DRIVER_TYPE = "webdriver.chrome.driver";
public WebDriver driver;
public final String BASE_URL = "https://www.bbc.com/";
public final String LINKS_ATTRIBUTE = "href";
public final String LINKS_TAG = "a";
@BeforeTest
public void beforeTest(){
ChromeOptions options = new ChromeOptions();
options.addArguments("--disable-notifications","--ignore-certificate-errors","--disable-extensions");
System.setProperty(DRIVER_TYPE,DRIVER_PATH);
driver = new ChromeDriver(options);
driver.manage().window().maximize();
driver.get(BASE_URL);
}
@Test
public void FindAllBrokenLinks() throws Exception{
List<WebElement> allLinks = driver.findElements(By.tagName(LINKS_TAG));
for(WebElement link:allLinks){
try {
String urlLink = link.getAttribute(LINKS_ATTRIBUTE);
URL url = new URL(urlLink);
HttpURLConnection httpURLConnect=(HttpURLConnection)url.openConnection();
httpURLConnect.setConnectTimeout(5000);
httpURLConnect.connect();
if(httpURLConnect.getResponseCode()>=400)
{
System.out.println(urlLink+" - "+httpURLConnect.getResponseMessage()+"is a broken link");
}
else{
System.out.println(urlLink+" - "+httpURLConnect.getResponseMessage());
}
}catch (Exception e) {
}
}
}
@AfterClass
public void CloseDriver(){
driver.close();
}
}
URL - BBC URL, 1 49 . :) , .
:
https://www.bbc.com/sport — OK
https://www.bbc.com/worklife — OK
https://www.bbc.com/future — OK
https://www.bbc.com/culture — OK
https://www.bbc.com/culture/music — OK
http://www.bbc.co.uk/worldserviceradio/ —
http://www.bbc.co.uk/programmes/p00wf2qw —
https://www.bbc.com/news/world-europe-57039362 — OK
"Java QA Automation Engineer". , , .