Перейти к содержимому

Фотография

Массовая проверка titles


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 10

#1 mipars

mipars

    Новый участник

  • Members
  • Pip
  • 46 сообщений

Отправлено 13 июня 2014 - 14:40

Есть необходимость проверить огромное количество ссылок на верность title.

 

Допустим я создаю помошника:

    String[] url = {"xxx", "xxx1"};

    public void linkClick(){
        int i;
        for (i=0; i < url.length; i++){
            driver.get(url[i]);
        }
    }

но в тесте при вызове метода linkClick создается только инстанс браузера и открывается базовая страница.

 

Как заставить браузер идти по массиву ссылок?


  • 0

#2 Snap

Snap

    Специалист

  • Members
  • PipPipPipPipPip
  • 980 сообщений
  • ФИО:Роман
  • Город:Москва


Отправлено 13 июня 2014 - 17:02

Что значит базовая страница?


  • 0

#3 mipars

mipars

    Новый участник

  • Members
  • Pip
  • 46 сообщений

Отправлено 13 июня 2014 - 17:30

Имеется ввиду BaseUrl, которая прописана в классе AppManager. А в тесте соотвтетсвенно создается обїект ксласаа AppManager, который возвращает объект в ктором есть метод linkClick.

 

Тест запускается, открывается страница site.com и закрівается. Хотя при дебаге вроде как заходит в цикл.


  • 0

#4 Snap

Snap

    Специалист

  • Members
  • PipPipPipPipPip
  • 980 сообщений
  • ФИО:Роман
  • Город:Москва


Отправлено 14 июня 2014 - 15:02

Первое что приходит в голову: ссылки содержат "http://" в начале?


  • 0

#5 mipars

mipars

    Новый участник

  • Members
  • Pip
  • 46 сообщений

Отправлено 14 июня 2014 - 18:21

Да, есть


  • 0

#6 mipars

mipars

    Новый участник

  • Members
  • Pip
  • 46 сообщений

Отправлено 17 июня 2014 - 12:14

Почему то тест после запуска идет на BaseUrl, а затем выполняется метод

    @AfterSuite
    public void stop() {
        app.stop();
    }

Если его за комментировать, то тест проходит по ссылкам


  • 0

#7 mipars

mipars

    Новый участник

  • Members
  • Pip
  • 46 сообщений

Отправлено 17 июня 2014 - 13:09

А так оказывается и раньше переходи по ссылкам из массива был, но почему то толи так быстро, толи как так вышло, что в браузере это было не заметно. Добавив Thread.sleep переход стал заметен.

Теперь проблема если проверку нужно делать в тесте, то где хранить массив верных title? Если для каждой страницы они уникальны и таких страниц около 500?


  • 0

#8 BadMF

BadMF

    Специалист

  • Members
  • PipPipPipPipPip
  • 809 сообщений
  • ФИО:Dmitry Petrov

Отправлено 17 июня 2014 - 13:38

я бы использовал тот же список ссылок и на основе него сделал бы массив списков где [[url1, title1],[url2, title2], ...] но джавы я не знаю и код не подскажу.

 

а переход вы не видели потому что вы выполняете следующий переход сразу после нажатия на предыдущий, что не корректно, так как страница ещё не загрузилась и возможно что и тайтл вы не получите, ждите загрузки страницы, таймаут это плохо если есть другие варианты.


  • 0

#9 Snap

Snap

    Специалист

  • Members
  • PipPipPipPipPip
  • 980 сообщений
  • ФИО:Роман
  • Город:Москва


Отправлено 18 июня 2014 - 17:56

А так оказывается и раньше переходи по ссылкам из массива был, но почему то толи так быстро, толи как так вышло, что в браузере это было не заметно. Добавив Thread.sleep переход стал заметен.

Теперь проблема если проверку нужно делать в тесте, то где хранить массив верных title? Если для каждой страницы они уникальны и таких страниц около 500?

Надо было это проверить в дебаге с точкой останова ;)

Тайтлы еще можно хранить в текстовом файле или даже экселе.


  • 0

#10 mipars

mipars

    Новый участник

  • Members
  • Pip
  • 46 сообщений

Отправлено 19 июня 2014 - 12:18

Надо было это проверить в дебаге с точкой останова ;)

 

Да я смотрел в дебаге, но не поучилось заметить. В цикл дебаг заходил, но на строке driver.get как бы ничего заметно в браузере не было. Но признаю, я не очень хорошо умею им пользоваться.


  • 0

#11 Nwd

Nwd

    Новый участник

  • Members
  • Pip
  • 28 сообщений

Отправлено 23 июня 2014 - 16:42

Делал что-то подобное, нужно было проверить тайтлы и урлы на соответствие СЕО-заморочкам. Урлы брал из документа. Вот часть теста:

 

BufferedReader in = new BufferedReader(new FileReader("C:/....txt"));
 
   while (in.ready()) {
     String s = in.readLine();
     driver.get(s);
         String title = driver.getTitle();
         String url = driver.getCurrentUrl();
 
Тут была проверка на длину и если она была больше положенной, шла запись в 2 документа.
 
Ну и если не тяжело - выложи весь тест, а не вырванные оттуда строчки

  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных