[INTERFACE]
DIALOG, "Поиск элементов", 748, 330;
STATIC, "Метод поиска", 4, 4, 76, 20;
COMBO, "id""name""xpath""link_text""partial_link_text""tag_name""class_name""css_selector", 88, 4, 164, 172, string M_find;
STATIC, "Искать", 260, 4, 40, 20;
EDIT, 304, 4, 432, 20, unknown Find;
STATIC, "Пауза До", 4, 28, 52, 20;
EDIT, 60, 28, 100, 20, int P1;
STATIC, "Время ожидания", 4, 52, 88, 20;
EDIT, 96, 52, 100, 20, int T;
STATIC, "Количество найденных", 4, 76, 124, 20;
EDIT, 132, 76, 72, 20, int K;
STATIC, "Сессия", 220, 76, 44, 20;
EDIT, 268, 76, 72, 20, string S;
STATIC, "Массив Элементов", 356, 76, 104, 20;
EDIT, 464, 76, 72, 20, string E;
CHECK, "Получить экранные координаты элемента относительно левого верхнего угла страницы в окне браузера в переменные", 4, 100, 644, 20, int Coord;
STATIC, "Позиция X", 4, 124, 56, 20;
EDIT, 64, 124, 100, 20, string Element_x;
STATIC, "Позиция Y", 184, 124, 56, 20;
EDIT, 244, 124, 100, 20, string Element_y;
STATIC, "Ширина", 364, 124, 44, 20;
EDIT, 412, 124, 100, 20, string Element_width;
STATIC, "Высота", 532, 124, 44, 20;
EDIT, 580, 124, 100, 20, string Element_height;
STATIC, "Пауза после  нахождения", 4, 148, 136, 20;
EDIT, 144, 148, 100, 20, int P2;
STATIC, "Действие", 4, 172, 56, 20;
COMBO, "Клик по элементу""Считать с элемента""Считать с текстового поля""Получить ссылку с элемента""Получить значение атрибута""Записать в элемент""Записать в элемент и нажать ENTER""Бездействие", 64, 172, 192, 112, string D;
EDIT, 260, 172, 184, 20, unknown Atribute;
STATIC, "Записать в элемент текст", 4, 196, 140, 20;
EDIT, 148, 196, 388, 20, unknown Z;
STATIC, "Копировать текст в", 544, 196, 108, 20;
EDIT, 656, 196, 80, 20, string Copy;
STATIC, "Пауза После действия (если было)", 4, 220, 184, 20;
EDIT, 192, 220, 100, 20, int P3;
STATIC, "Комментарий", 4, 244, 76, 20;
EDIT, 84, 244, 652, 20, unknown Comment;
BUTTON_OK, "Принять", 528, 272, 100, 20;
BUTTON_CANCEL, "Закрыть", 636, 272, 100, 20;
[END]

[APPEARANCE]
COLOR = 50, 10, 250;
SIZE_X = 10;
SIZE_Y =6;
[END]


[INFO]
[ENDL]>>Find>>[ENDL]>>D>>[ENDL]>>Comment
[END]



[ASSOC_VAR]
M_find="link_text";
Find="Название кнопки";
P1=0;
T=0;
K=K_E;
S=Session_E;
E=Element_E;
D="Бездействие";Atribute="width";
Z="Текст";
Copy=Copy_E;Coord=0;
Element_x=Element_X;
Element_y=Element_Y;
Element_width=Element_Width;
Element_height=Element_Height;
P2=0;
P3=0;
V_Copy=#~Copy~;V_Element_x=#~Element_x~;V_Element_y=#~Element_y~;V_Element_width=#~Element_width~;V_Element_height=#~Element_height~;
V_K=#~K~;
V_S=#~S~;
V_E=#~E~[0];
Comment=;
[END]

[GLOBAL_VAR]
int Import_FindElement=0;
int ~K~;
string ~S~;
string ~E~[1000];
string ~Copy~;
int ~Element_x~;
int ~Element_y~;
int ~Element_width~;
int ~Element_height~;
[END]

[EVENT]IF (Coord==1)ENABLE(GETID(Element_x), 1);IF (Coord==1)ENABLE(GETID(Element_y), 1);IF (Coord==1)ENABLE(GETID(Element_width), 1);IF (Coord==1)ENABLE(GETID(Element_height), 1);IF (Coord==0)ENABLE(GETID(Element_x), 0);IF (Coord==0)ENABLE(GETID(Element_y), 0);IF (Coord==0)ENABLE(GETID(Element_width), 0);IF (Coord==0)ENABLE(GETID(Element_height), 0);IF (D=="Получить значение атрибута")ENABLE(GETID(Atribute), 1);IF (D!="Получить значение атрибута")ENABLE(GETID(Atribute), 0);[END]

[FUNCTION_BODY]
function(string how, string d, string atribute, string z, string #copy, int p1, int t, int p2, int p3, string find, int #Kol, string #Find_Session, string #Find_Element, int coord, int #element_x, int #element_y, int #element_width, int #element_height)
{
  if (Import_FindElement==0)
  {
  Import_FindElement=1;
  __python_sync
#Импорт
from selenium.webdriver.common.keys import Keys
__end_python
  }
pause(p1);
string Rez="";
if (t==0)t=1;
  looptime(t)
  {
  Kol=0;
    if (how=="id")
    {
    sendgetpython("element=web.find_elements_by_id(^'"+find+"^')");
    Kol=formatsn(sendgetpython("print(len(element))"));
    }
    if (how=="name")
    {
    sendgetpython("element = web.find_elements_by_name(^'"+find+"^')");
    Kol=formatsn(sendgetpython("print(len(element))"));
    }
    if (how=="xpath")
    {
    sendgetpython("element = web.find_elements_by_xpath(^'"+find+"^')");
    Kol=formatsn(sendgetpython("print(len(element))"));
    }
    if (how=="link_text")
    {
    sendgetpython("element = web.find_elements_by_link_text(^'"+find+"^')");
    Kol=formatsn(sendgetpython("print(len(element))"));
    }
    if (how=="partial_link_text")
    {
    sendgetpython("element = web.find_elements_by_partial_link_text(^'"+find+"^')");
    Kol=formatsn(sendgetpython("print(len(element))"));
    }
    if (how=="tag_name")
    {
    sendgetpython("element = web.find_elements_by_tag_name(^'"+find+"^')");
    Kol=formatsn(sendgetpython("print(len(element))"));
    }
    if (how=="class_name")
    {
    sendgetpython("element = web.find_elements_by_class_name(^'"+find+"^')");
    Kol=formatsn(sendgetpython("print(len(element))"));
    }
    if (how=="css_selector")
    {
    sendgetpython("element = web.find_elements_by_css_selector(^'"+find+"^')");
    Kol=formatsn(sendgetpython("print(len(element))"));
    }
  sleep(5);
  if (Kol>0) break;
  }
if (Kol<1) return 0;
  if (coord)
  {
  element_x=formatsn(sendgetpython("web.execute_script(^'return arguments[0].getBoundingClientRect().left;^', element[0])"));
  element_y=formatsn(sendgetpython("web.execute_script(^'return arguments[0].getBoundingClientRect().top;^', element[0])"));
  element_width=formatsn(sendgetpython("web.execute_script(^'return arguments[0].getBoundingClientRect().width;^', element[0])"));
  element_height=formatsn(sendgetpython("web.execute_script(^'return arguments[0].getBoundingClientRect().height;^', element[0])"));
  }
if (Kol>1000)Kol=1000;
  for (int n=0; n<Kol; n++)
  {
  Rez=sendgetpython("print(element["+format(n)+"])");
  if (n==0) regexsearch(1, #Find_Session, Rez, "(?<=session=^")(.*?)(?=^")");
  regexsearch(1, #Find_Element[n], Rez, "(?<=element=^")(.*?)(?=^")");
  }
pause(p2);
if (d=="Клик по элементу"){sendgetpython("element[0].click()"); pause(p3);}
if (d=="Считать с элемента"){copy=sendgetpython("element[0].text"); pause(p3);}
if (d=="Считать с текстового поля"){copy=sendgetpython("element[0].get_attribute(^'value^')"); pause(p3);}
if (d=="Получить ссылку с элемента"){copy=sendgetpython("element[0].get_attribute(^'href^')"); pause(p3);}if (d=="Получить значение атрибута"){copy=sendgetpython("element[0].get_attribute(^'"+atribute+"^')"); pause(p3);}
if (d=="Записать в элемент"){sendgetpython("element[0].send_keys(^""+z+"^")"); pause(p3);}
  if (d=="Записать в элемент и нажать ENTER")
  {
  sendgetpython("element[0].send_keys(^""+z+"^")");
  sendgetpython("element[0].send_keys(Keys.ENTER)");
  pause(p3);
  }
string ts[2];
if (regexsearch(2, #ts[0], copy, "^'")==2) regexreplace(-1, #copy, copy, "^.|.$", "");
return Kol;
}
[END]

[CALL]
(M_find, D, Atribute, Z, V_Copy, P1, T, P2, P3, Find, V_K, V_S, V_E, Coord, V_Element_x, V_Element_y, V_Element_width, V_Element_height)
[END]

[FUNCTION_LOGIC]  
>0
[END]
