0

Использую библиотеку selenium и c# для изменения валюты на сайте. При переходе на страницу, необходимо нажать на кнопку. Работает через раз. То без проблем находит, то не находит. То интересующий объект есть на сайте, то его нет. Использую в коде ожидание элемента, иногда хватает менее секунды, а иногда и 30 секунд недостаточно. С чем это связано? Как можно сделать, чтобы всегда находился этот элемент?

Ссылка на сайт - https://www.farfetch.com

введите сюда описание изображения введите сюда описание изображения

  • 1
    Жаль, что вы так и не поняли как работать с сайтами без всяких селениумов и прочей ереси, хоть я вам и кидал решения данных задач. Текущая задача не чем не отличается от тех, ибо у этих стран также есть API. – EvgeniyZ May 07 '20 at 21:41
  • Так ситуация в другом. Мне необходимо нажать на кнопку, чтобы этот список стран появился. Класс этой кнопки иногда появляется, а иногда класса нет. – Альбина May 08 '20 at 06:59
  • В другом потому, что вы себе палки в колеса ставите. Я вам дал ссылку, где весь этот список стран, их обозначения, символ, ссылка и так далее, при ее помощи вы можете без труда сами сделать в два счета такую панельку и выдать пользователю выбор, но нет, вы грузите целый браузер ради того, чтобы тыкруть на кнопочку, мне это простите, не понять) – EvgeniyZ May 08 '20 at 09:21
  • Я новичок в программировании, это мой первый собственный проект и многих вещей я не понимаю. Честно, я не понимаю, как Вы получили список всех стран. Точнее, я не понимаю, как Вы нашли возможность, получить список всех стран. Я не понимаю, как можно взаимодействовать с кнопками через HTML код страницы. Я буду очень признательна, если Вы мне подскажите правильный путь - как это понять. – Альбина May 12 '20 at 16:45
  • Смотрите, любой совершенно сайт имеет как минимум 2 звена: 1. Сервер. 2. Клиент. Когда вы заходите на сайт, ваш браузер получает HTML код страницы, некое отображение, это клиент. Дальше этот клиент начинает отправлять фоном запросы при помощи JS на сервер, например "Дай мне 10 страницу новостей" или "Дай мне список товара", делается это простыми GET/POST (и др.) запросами, где каждый запрос имеет свои данные для того, чтобы сервер понимал что ему нужно делать, а в ответ сервер дает данные в удобном для программного разбора формате (обычно JSON или XML). – EvgeniyZ May 12 '20 at 18:39
  • Формат HTML не удобен для программного разбора так, как он содержит в себе много лишней информации, да и пихать все в одну кучу сейчас мало кто хочет, по этому в клиенте сейчас не хранят данные. В итоге у вас получается цепочка Зашли на сайт -> Получили HTML (клиент) -> Клиент фоном спросил у сервера данные -> Сервер отдал их например в JSON -> Клиент получил и составил на их основе вам интерфейс. Исходя из этого мы смело можем откинуть все, что касается генерации интерфейса, отловить этот запрос и отправить его самостоятельно. – EvgeniyZ May 12 '20 at 18:43
  • В помощь я могу вам дать два моих ответа (1 и 2), где я подробно описывал как отлавливать запросы и как их отправлять. Например для получения ссылки из первого моего комментария заходим через браузер на сайт, жмем F12, переходим во вкладку Network и жмем на кнопку с выбором языка (на сайте) и мы сразу увидим, что от сайта посыпалось куча запросов, где GetAll имеет нужную информацию. – EvgeniyZ May 12 '20 at 18:48
  • Спасибо огромное! – Альбина May 12 '20 at 20:58

0 Answers0