@lorrrtemar

В чем тут проблема может быть(Selenium WebDriver + JAVA)?

Я начал заниматься разработкой тестов на JAVA + Senelium WebDriver. Хочу самое простейшее понять, переходы, клик, выбор и т.д. Возникла проблема. Я совершил переход на яндекс маркет с помощью By.linkText, а вот ориентир по маркету у меня не хочет работать ни на селекторе, ни на xpath'е. Примерно, такая ошибка в данном коде высвечивается. В чем может быть проблема? Скриншоты кода и ошибки прилагаю. Понимаю, что не находит элемент, когда в инспекторе гугл он виден.
60671bb947ca1166051119.png
60671b8e7f002592939713.png
  • Вопрос задан
  • 664 просмотра
Пригласить эксперта
Ответы на вопрос 2
@Araya
У большого количества сайтов, рандомно генерируются классы, вот как у тебя на скриншоте. У них есть свойство - меняться с течением времени, пиши локатор без генерируемых классов.
И скачай нормальную IDE
Ответ написан
azerphoenix
@azerphoenix Куратор тега Java
Java Software Engineer
Добрый день!
Во-первых, при написании вопроса выкладывайте код ошибки и сам код обернув его соответствующим тегом. Скриншоты не самая лучшая идея, ибо они ухудшают читабельность + сложно комментировать тот или иной код, а копировать ваш код со скриншота, затея так себе.

Что касается вашей проблемы, то вы столкнулись с сайтом, который формирует контент динамически (т.е. это некий js фреймворк - angular, svelte, vue, react etc.). Формируя контент динамически некоторые селекторы класса формируются тоже динамически. Соответственно, выбор элемента по CSS классу не сработает. или же сработает не всегда А так как не у каждого элемента есть ID, то использовать его тоже не получится.
Что можно сделать?
- Использовать XPATH, но не привязывайтесь к классу.
Хотя по своему опыту скажу, что как-то раз попался сайт, который к тому же при каждом обновлении страницы изменял структуру виртуального DOM и соответственно, выборка по XPATH тоже не работала.
С другой стороны, если вы используете Selenium для разработки некоего парсера, то лучше изучить АПИ Яндекс Маркета и работать с ним.
https://yandex.ru/dev/market/content-data/
https://yandex.ru/dev/market/index/
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы