Запусти снова программу в дебаг моде.
Скопируй полученное значение document.html() в созданный ранее html файл.
Отформатируй его и найди теги с вакансиями.
Почитай в Сообществе дополнительный материал к лекции про селекторы атрибута.
ВНИМАНИЕ: ОСОБЕННОСТИ ТЕСТИРОВАНИЯ!
HTML код странички ХэдХантера может меняться, чтобы эта задача продолжила работать стабильно не меняя тесты воспользуйся закешированной версией https://javarush.com/testdata/big28data.html
Это только для этого пункта, в следующих заданиях используй реальные страницы.
1. В классе HHStrategy создай protected метод Document getDocument(String searchString, int page) throws IOException.
2. Реализуй следующую логику метода getVacancies в классе HHStrategy:
2.1. Подключись к закешированной страничке ХэдХантера используя метод getDocument, нумерация начинается с 0.
2.2. Получи список элементов с атрибутом по имени "data-qa" и значением "vacancy-serp__vacancy". Должно быть до 20 вакансий на странице.
2.3. Если данные в списке из п.2.2 есть, то для каждого элемента:
2.3.1. создать вакансию и заполнить все ее данные, получив данные из текущего элемента.
Если тег с зарплатой присутствует, то заполнить и поле salary, иначе инициализировать поле пустой строкой.
site и url нужно взять из атрибута со значением "vacancy-serp__vacancy-title".
2.4. Выполнить п.2.1-2.3 для следующей страницы ХэдХантера.
2.5. Если закончились страницы с вакансиями, то выйти из цикла.
Исключения игнорировать.
Все вакансии добавить в общий список и вернуть в качестве результата метода.
Подсказка по зарплате:
Поиграйся с URL_FORMAT, добавь туда еще один параметр, чтобы получить вакансии с зарплатами.
Проанализируй полученный html и найди тег для зарплаты.
Не забудь потом вернуть значение URL_FORMAT обратно.
- В классе HHStrategy создай protected метод getDocument(String searchString, int page). Перенеси туда логику по получению объекта html-страницы Document.
- Метод getVacancies класса HHStrategy должен получать содержимое страниц с помощью метода getDocument. Начни с 0 страницы.
- Из объекта Document получи список html-элементов с атрибутом по имени "data-qa" и значением "vacancy-serp__vacancy". Для каждого элемента создай объект вакансии и добавь его в возвращающий методом список.
- Нужно последовательно обработать все страницы результатов поиска. Как только страницы с вакансиями закончатся, прерви цикл и верни список найденных вакансий.
- У каждой вакансии должно быть заполнено поле title полученными из html-элемента данными о названии вакансии.
- У каждой вакансии должно быть заполнено поле url полученной из html-элемента ссылкой на вакансию.
- У каждой вакансии должно быть заполнено поле city полученными из html-элемента данными о городе.
- У каждой вакансии должно быть заполнено поле companyName полученными из html-элемента данными о компании.
- У каждой вакансии должно быть заполнено поле siteName значением сайта, на котором вакансия была найдена.
- Поле salary у вакансии должно быть заполнено, если в html-элементе присутствовал тег с зарплатой. Иначе поле должно быть инициализировано пустой строкой.
- Если ты менял значение поля URL_FORMAT, не забудь вернуть его обратно.