Cuando necesite probar todos los enlaces en su proyecto, puede hacerlo usando Postman o cualquier otra herramienta de prueba API, pero hay una manera más fácil. Cuando utiliza herramientas de prueba de API, debe escribir todas las conexiones de enlace una por una, y cuando los enlaces cambian, debe editar todas las pruebas una por una nuevamente.
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". , , .