Клик по xPath или выход по красной ветке, если нет клика?

  • Автор темы Автор темы backoff
  • Дата начала Дата начала

backoff

Client
Регистрация
20.04.2015
Сообщения
6 359
Реакции
6 656
Баллы
113
Хая.

Как сделать, чтобы при не существующему клику по xpath, шел выход по красной ветке?

пользуюсь кодом
как пример
Код:
Развернуть Свернуть Копировать
instance.ActiveTab.FindElementByXPath("//form[@role='search']//button[@type='submit']", 0).Click();
это клик по кнопке "найти" на главной странице яндекса

но если сделать вот так
Код:
Развернуть Свернуть Копировать
instance.ActiveTab.FindElementByXPath("//form[@role='search']//button[@type='submit222222222222222']", 0).Click();
кубик тоже выдает успех, но как такового клика нет

есть ли готовый сниппет проверки нажатия?

хельп!

ps \ так-то проблем особых нет с xPath'сом, но если вдруг элемент не успевает прогрузиться, то все идет по .... ((
 
кубик тоже выдает успех
C#:
Развернуть Свернуть Копировать
HtmlElement he = instance.ActiveTab.FindElementByXPath("id('button')", 0);
if (he.IsVoid) throw new Exception("Не найдено и т.д."); // их всегда надо проверять
he.Click();

элемент не успевает прогрузиться
Ни что не мешает сделать цикл с задержкой.
 
Последнее редактирование:
  • Спасибо
Реакции: backoff и Lord_Alfred
Ни что не мешает сделать цикл с задержкой.
не всегда нужного количества секунд хватает

сделал вот такой вариант, чтоб 1 раз прописывать путь

Код:
Развернуть Свернуть Копировать
var xpath = "//form[@role='search']//button[@type='submit']";

HtmlElement he = instance.ActiveTab.FindElementByXPath(xpath, 0);
if (he.IsVoid) throw new Exception("Не найдено и т.д."); // их всегда надо проверять
he.Click();

instance.ActiveTab.FindElementByXPath(xpath, 0).Click();

спасибо!
 
не всегда нужного количества секунд хватает
Делай задержку Thread.Sleep(500); попыток 120 - в общем будет макс. 60 секунд и если найдёт раньше, то и быстрее выйдет.
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)