Selenium IDE: проверить, что неработающая ссылка 404 не найдена? - PullRequest
0 голосов
/ 04 октября 2011

Кто-нибудь знает, может ли Selenium IDE проверить любую неработающую ссылку на странице ??

Ответы [ 4 ]

1 голос
/ 24 октября 2013

Короче говоря, вы не можете (пока).Более подробную информацию о ситуации см. По адресу: Как попросить Selenium IDE проверить код состояния HTTP (например, 2XX, 404, 500) По сути, специалисты по селену решили, что эта функция не относится к селену из-за ошибкикоды читаются машинами, а не людьми.

1 голос
/ 04 октября 2011

Краткий ответ: да, но, вероятно, не самая лучшая идея.

Селен, возможно, не лучшая программа для этого, особенно если вы используете только Selenium IDE.Существует несколько программ с единственной целью тестирования неработающих ссылок (сделайте небольшой поиск), черт возьми, , даже у W3C есть веб-приложение для этого.

При этом вы можете взять вывод из Selenium IDE, отформатированный на ваш любимый язык, запрограммировать тестовый пример Selenium с более продвинутыми классами модульного тестирования, включить цикл while, который проверял бы наличие большего количества ссылок, ипосетите их / проверьте заголовки, если вы действительно хотите сделать это через Selenium.

0 голосов
/ 20 марта 2018

Вы можете использовать код состояния 404 для проверки с помощью веб-сервисов REST. Используйте gson и apache jar, чтобы получить его.

тестирование в открытом классе {

public static void main(String[] args) {
    try{
        WebDriver driver = new FirefoxDriver();
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        driver.manage().window().maximize();
        driver.navigate().to("https://www.amazon.in/");
        List<WebElement> links = driver.findElements(By.tagName("a"));
        System.out.println("Number of links : " + links.size());
        for(WebElement e : links) {
            String linkText = e.getAttribute("href");
            System.out.println("Link -->>" +linkText);
            if(linkText!=null && !linkText.isEmpty()) {
                HttpPost post = new HttpPost(linkText);
                HttpClient client = HttpClientBuilder.create().build();
                HttpResponse res = client.execute(post);
                String s = res.getStatusLine().toString();
                if(s.contains("404")) {
                    System.out.println("Navigated");
                    //your code to handle logic 
                } else {
                    //your code to handle logic with other response code
                }
            }
        }
    } catch (Exception e) {
        System.out.println(e.getStackTrace());
    }
}

}

0 голосов
/ 06 октября 2011

Это звучит как работа для простого скрипта-паука, например, с использованием wget в Linux

--spider

   When invoked with this option, Wget will behave as a Web spider,
   which means that it will not download the pages, just check that
   they are there.  For example, you can use Wget to check your book‐
   marks:  

           wget --spider --force-html -i bookmarks.html

   This feature needs much more work for Wget to get close to the
   functionality of real web spiders.
...