Как отловить ошибку клика в С# кубике переменную?

sdfghjd77

Client
Регистрация
28.12.2017
Сообщения
63
Благодарностей
2
Баллы
8
Есть клик в коде с#

m.click(knopka_profil);

Если нет элемента на странице, то выводится в лог сообщение с желтым восклицательным знаком :

Ошибка - click

Но кубик с # заканчивается по зеленой ветке.

Мне нужно исходя из того, получилось кликнуть или нет, выполнить определенные действия в шаблоне.

Вопрос: как определить что клик произошел или нет?
 

RoyalBank

Client
Регистрация
07.09.2015
Сообщения
557
Благодарностей
550
Баллы
93
Вопрос: как определить что клик произошел или нет?
Проверяй если изменились атрибуты у кнопки, это может быть новый класс отображающий состояние. Для этого просто сравни атрибуты кнопки до клика и после клика.
 
  • Спасибо
Реакции: sdfghjd77

sdfghjd77

Client
Регистрация
28.12.2017
Сообщения
63
Благодарностей
2
Баллы
8
Проверяй если изменились атрибуты у кнопки, это может быть новый класс отображающий состояние. Для этого просто сравни атрибуты кнопки до клика и после клика.
Такая ошибка происходит, когда кнопки нет вообще, у меня задача определить наличие кнопки.

Пытаюсь это сделать с помощью клика. Получился клик, значит кнопка есть, не получился, значит нету.

или так не правильно?
 

RoyalBank

Client
Регистрация
07.09.2015
Сообщения
557
Благодарностей
550
Баллы
93
Сначала проверяй наличие кнопки на странице, затем делай клик, вот пример:

C#:
if (!tab.FindElementByXpath(".//button[contains(@class,'apply')]",0).isVoid) m.click(knopka_profil);

if (!tab.FindElementByXpath(".//button[contains(@class,'clicked')]",0).isVoid) // действия если выполнен клик.
 
  • Спасибо
Реакции: sdfghjd77

sdfghjd77

Client
Регистрация
28.12.2017
Сообщения
63
Благодарностей
2
Баллы
8
Сначала проверяй наличие кнопки на странице, затем делай клик, вот пример:

C#:
if (!tab.FindElementByXpath(".//button[contains(@class,'apply')]",0).isVoid) m.click(knopka_profil);

if (!tab.FindElementByXpath(".//button[contains(@class,'clicked')]",0).isVoid) // действия если выполнен клик.
Компиляция кода Ошибка в действии "CS0103" "Имя "tab" отсутствует в текущем контексте". [Строка: 12; Cтолбец: 6]
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
Компиляция кода Ошибка в действии "CS0103" "Имя "tab" отсутствует в текущем контексте". [Строка: 12; Cтолбец: 6]
смутно припоминается этот класс m.... а вы не под андроид случайно шаб пилите ?
 

sdfghjd77

Client
Регистрация
28.12.2017
Сообщения
63
Благодарностей
2
Баллы
8

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
  • Спасибо
Реакции: sdfghjd77

sdfghjd77

Client
Регистрация
28.12.2017
Сообщения
63
Благодарностей
2
Баллы
8
ну так надо же об этом сразу писать. вам методы пишут для работы с браузером зеннопостера, а вы их пытаетесь применить к апиуму....
ну я хотел узнать как вывести в переменную результат действия.

а то шаблон не может понять он авторизовался в аккаунте или нет ((
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
ну я хотел узнать как вывести в переменную результат действия.

а то шаблон не может понять он авторизовался в аккаунте или нет ((
сложно что то советовать , когда у вас какой то свой класс. что там прописано не известно. что он там делает неизвестно. что возвращает неизвестно.
Если хотите что бы вам на форуме смогли помочь, вы либо код класса кастомного выкладывайте, если сами не можете в нем разобраться, либо откажитесь от использования этого класса и делайте код на функциях подключенных библиотек от апиума.
 
  • Спасибо
Реакции: sdfghjd77

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
нашел вот такие конструкции , может поможет чем
C#:
IWebElement el;
// ожидание появление элемента в течении установленного таймаута
wait.Until( d => d.FindElements(By.XPath("//android.view.View [@resource-id='menu-btn']")).Count > 0 );

// попытка получить элемент для дальнейших действий
try {el = driver.FindElementsByXPath("//android.view.View").First(f=> f.Text == "ВОЙТИ");}
catch{return -1;}
return 0;
 
  • Спасибо
Реакции: sdfghjd77

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