/// <summary> /// Реализует выполнение встроенных функций /// </summary> /// <param name="name"></param> /// <returns></returns> public bool run_inet_func(string name) { HtmlElement htmlElem = null; List <HtmlElement> htmlElem_list = null; string res = ""; bool bl; int num_params = tableId.get_num_of_param(name); Lexem[] lex_arr = new Lexem[num_params]; //в массиве лежат либо константы, либо переменные for (int i = num_params - 1; i >= 0; i--) { lex_arr[i] = args.Pop(); } //switch по функциям switch (name) { case "click_by_id": wb.click_by_id(lex_arr[0].getName()); break; case "check_by_id": bl = wb.check_by_id(lex_arr[0].getName()); res = getValueFromBool(bl); break; case "input_by_id": wb.input_by_id(lex_arr[0].getName(), lex_arr[1].getName()); break; case "go": wb.go(lex_arr[0].getName()); break; case "check_by_text": bl = wb.check_by_text(lex_arr[0].getName()); res = getValueFromBool(bl); break; case "set_options": wb.set_options(lex_arr[0].getName()); break; case "click_href": wb.click_href(lex_arr[0].getName()); break; case "click_by_text": wb.click_by_text(lex_arr[0].getName()); break; case "set_check_box_flag": wb.set_check_box_flag(lex_arr[0].getName(), getBoolFromValue(lex_arr[1])); break; case "click_check_box_flag": wb.click_check_box_flag(lex_arr[0].getName()); break; case "click_elem": wb.click_elem(tableId.get_htmlElem_of_lex(lex_arr[0].getName())); break; //---------------------- case "get_tree": htmlElem_list = wb.get_tree(lex_arr[0].getName()); break; case "get_elements_by_tag": htmlElem_list = wb.get_elements_by_tag(lex_arr[0].getName()); break; case "get_elements_by_attr_value": htmlElem_list = wb.get_elements_by_attr_value(lex_arr[0].getName(), lex_arr[1].getName()); break; case "save": htmlElem = tableId.get_htmlElem_of_lex(lex_arr[0].getName()); //res = wb.save(htmlElem, lex_arr[1].getName()); wb.save(htmlElem, lex_arr[1].getName()); break; case "saveHTML": htmlElem = tableId.get_htmlElem_of_lex(lex_arr[0].getName()); //res = wb.saveHTML(htmlElem, lex_arr[1].getName()); wb.saveHTML(htmlElem, lex_arr[1].getName()); break; case "save_images": htmlElem = tableId.get_htmlElem_of_lex(lex_arr[0].getName()); wb.save_images(htmlElem, lex_arr[0].getName()); break; //------------------------- case "get_element_with_num": htmlElem = tableId.get_htmlElemCollect_of_lex(lex_arr[0].getName())[Convert.ToInt32(lex_arr[1].getName())]; break; case "get_length": res = tableId.get_htmlElemCollect_of_lex(lex_arr[0].getName()).Count.ToString(); break; case "input_elem": wb.input_elem(tableId.get_htmlElem_of_lex(lex_arr[0].getName()), lex_arr[1].getName()); break; case "set_check_box_elem": wb.set_check_box_elem(tableId.get_htmlElem_of_lex(lex_arr[0].getName()), getBoolFromValue(lex_arr[1])); break; case "set_options_elem": wb.set_options_elem(tableId.get_htmlElem_of_lex(lex_arr[0].getName()), lex_arr[1].getName()); break; case "wait": wb.wait(Convert.ToInt32(lex_arr[0].getName())); break; case "go_back": wb.go_back(); break; default: break; } Type_of_lex type = tableId.getTypeOfFunc(name); if (type != Type_of_lex._void) { if (type == Type_of_lex._htmlelement || type == Type_of_lex._htmlelementcollect) { res = add_new_uniq_lexId(type, htmlElem, htmlElem_list); } args.Push(new Lexem(type, res)); } //cur_step_poliz++; return(tableId.get_has_event_func(name)); }