C# клик по элементу с передачей номера совпадения

SlipDez

Client
Регистрация
18.07.2018
Сообщения
398
Благодарностей
71
Баллы
28
Есть несколько элментов на странице одинакового класса, по всем нужно совершить клик. Хочу создать функцию и вызывать ее только с разным аргументом (номером совпадения). Подскажите, что я делаю не так?
Код:
int num = 0;
Action <int> Click_Approve = (num) => {
    
// Установленная пауза
System.Threading.Thread.Sleep(5 * 1000);

// Конструктор действий, тип RiseEvent
HtmlElement Aprove0 = instance.ActiveTab.FindElementByAttribute("button", "class", "\\ btn\\ btn-primary", "regexp", num);
if (Aprove0.IsVoid) return -1;

// Задержка эмуляции
instance.WaitFieldEmulationDelay();
// Вызвать событие "click"
Aprove0.RiseEvent("click", instance.EmulationLevel);
};
Click_Approve(2);
Ругается на
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 789
Благодарностей
5 721
Баллы
113

volody00

Client
Регистрация
06.09.2016
Сообщения
929
Благодарностей
1 019
Баллы
93
C#:
Action <int> Click_Approve = (int num) => {
    
// Установленная пауза
System.Threading.Thread.Sleep(5 * 1000);

// Конструктор действий, тип RiseEvent
HtmlElement Aprove0 = instance.ActiveTab.FindElementByAttribute("button", "innertext", "Найти", "regexp", num);
if (Aprove0.IsVoid) throw new Exception("элемент не найден");

// Задержка эмуляции
instance.WaitFieldEmulationDelay();
// Вызвать событие "click"
Aprove0.RiseEvent("click", instance.EmulationLevel);
};
Click_Approve(0);
 
  • Спасибо
Реакции: SlipDez

SlipDez

Client
Регистрация
18.07.2018
Сообщения
398
Благодарностей
71
Баллы
28
C#:
Action <int> Click_Approve = (int num) => {
  
// Установленная пауза
System.Threading.Thread.Sleep(5 * 1000);

// Конструктор действий, тип RiseEvent
HtmlElement Aprove0 = instance.ActiveTab.FindElementByAttribute("button", "innertext", "Найти", "regexp", num);
if (Aprove0.IsVoid) throw new Exception("элемент не найден");

// Задержка эмуляции
instance.WaitFieldEmulationDelay();
// Вызвать событие "click"
Aprove0.RiseEvent("click", instance.EmulationLevel);
};
Click_Approve(0);
А если необходимо передать 2 аргумента, необходимо также его тип объявлять? таким образом верно?
C#:
Action <int> Click_Approve = (int num,int pause) => {
   
// Установленная пауза
System.Threading.Thread.Sleep(pause * 1000);

// Конструктор действий, тип RiseEvent
HtmlElement Aprove0 = instance.ActiveTab.FindElementByAttribute("button", "innertext", "Найти", "regexp", num);
if (Aprove0.IsVoid) throw new Exception("элемент не найден");

// Задержка эмуляции
instance.WaitFieldEmulationDelay();
// Вызвать событие "click"
Aprove0.RiseEvent("click", instance.EmulationLevel);
};
Click_Approve(0,10);
 

volody00

Client
Регистрация
06.09.2016
Сообщения
929
Благодарностей
1 019
Баллы
93
вот так:
C#:
Action <int, int> Click_Approve = (int num, int pause) => {
    
// Установленная пауза
System.Threading.Thread.Sleep(pause * 1000);

// Конструктор действий, тип RiseEvent
HtmlElement Aprove0 = instance.ActiveTab.FindElementByAttribute("button", "innertext", "Найти", "regexp", num);
if (Aprove0.IsVoid) throw new Exception("элемент не найден");

// Задержка эмуляции
instance.WaitFieldEmulationDelay();
// Вызвать событие "click"
Aprove0.RiseEvent("click", instance.EmulationLevel);
};
Click_Approve(0,3);
 
  • Спасибо
Реакции: SlipDez

SlipDez

Client
Регистрация
18.07.2018
Сообщения
398
Благодарностей
71
Баллы
28
Спасибо всем за ответы)
 
  • Спасибо
Реакции: djaga

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