Хотелось бы, чтобы в xhe был массив элементов.
т.е. например, если на странице несколько input с одинаковым name, то чтоб можно было пройтись массивом по всем элементам и выдернуть все которые нужны.
стандартные функции пока вроде не позволяют вытащить несколько одинаковых объектов. возвращается все время первый.
и вообще, был бы такой массив, было бы удобно.
можно конечно и самому такое написать, но имхо геморно. особенно для каждого проекта отдельно писать.
а если такое будет, и в простом для использования варианте, было бы супер
Массив полей, и массив элементов
топикстартер, наверное, имел ввиду примерно это:
1. xweb открывает страницу, отрабатывает вся ява и т.д.
2. после этого хорошо бы заполнить пхп-шный массив тем, что есть на странице. (input, buttons, images, radio, check, textarea и т.д.)
к примеру, назовем массив current_page.
в данном примере на странице есть два одинаково названных поля login и два поля password.
0_xweb_login, 0 - порядковый номер, _xweb_ - префикс, чтобы потом сплитом отделять порядковый номер от имени поля.
основной смысл этого, чтобы из пхп можно было узнать что есть на открытой странице и как оно называется. ну и для удобства - значения элементов.
кстати, если пойти немного дальше, то хорошо бы, чтобы xweb отдавал таким же образом и другие параметры, например куки.
1. xweb открывает страницу, отрабатывает вся ява и т.д.
2. после этого хорошо бы заполнить пхп-шный массив тем, что есть на странице. (input, buttons, images, radio, check, textarea и т.д.)
к примеру, назовем массив current_page.
Код: Выделить всё
print_r($current_page);
Array
(
[input] => Array
(
[0] => 'value from $input->get_value_by_number(0)'
[1] => '$input->get_value_by_number(1)'
[2] => '$input->get_value_by_number(2)'
[3] => '$input->get_value_by_number(3)'
)
[input_by_name] => Array
(
[0_xweb_login] => 'value from $input->get_value_by_number(0)'
[1_xweb_password] => '$input->get_value_by_number(1)'
[2_xweb_password] => '$input->get_value_by_number(2)'
[3_xweb_login] => 'value from $input->get_value_by_number(3)'
)
[images] => Array
(
[0] => 'value from $image->get_href_by_number(0)'
[1] => '$image->get_href_by_number(1)'
)
)
0_xweb_login, 0 - порядковый номер, _xweb_ - префикс, чтобы потом сплитом отделять порядковый номер от имени поля.
основной смысл этого, чтобы из пхп можно было узнать что есть на открытой странице и как оно называется. ну и для удобства - значения элементов.
кстати, если пойти немного дальше, то хорошо бы, чтобы xweb отдавал таким же образом и другие параметры, например куки.
[url=https://xn--80awbbeioodeq4h3a.xn--p1ai/forum/viewtopic.php?t=222]полезная хотелка[/url] :)
Коснулись вопроса полей с одинаковыми названиями. То же столкнулся, так и не понял как их заполнять. К примеру есть 2 одинаковых по именам инпута. При попытке заполнить по имени, заполняется только 1 инпут, который стоит выше, а второй остается пустой, но по идеи должны заполнится оба инпута. Как мне все-таки заполнить оба инпута по имени элемента?
Варианты:bok2007 писал(а):Коснулись вопроса полей с одинаковыми названиями. То же столкнулся, так и не понял как их заполнять. К примеру есть 2 одинаковых по именам инпута. При попытке заполнить по имени, заполняется только 1 инпут, который стоит выше, а второй остается пустой, но по идеи должны заполнится оба инпута. Как мне все-таки заполнить оба инпута по имени элемента?
использовать другие атрибуты?
$input->set_value_by_number($n,'')?
поставить фокус на ближайший к нему элемент и эмуляцией нажатия TAB добраться до нужного?
Обращение по ID элемента не подходит, т.к. он на разных сайтах различный. Может есть еще какие-нибудь варианты?Germ писал(а):Варианты:bok2007 писал(а):Коснулись вопроса полей с одинаковыми названиями. То же столкнулся, так и не понял как их заполнять. К примеру есть 2 одинаковых по именам инпута. При попытке заполнить по имени, заполняется только 1 инпут, который стоит выше, а второй остается пустой, но по идеи должны заполнится оба инпута. Как мне все-таки заполнить оба инпута по имени элемента?
использовать другие атрибуты?
$input->set_value_by_number($n,'')?
поставить фокус на ближайший к нему элемент и эмуляцией нажатия TAB добраться до нужного?
Вот например цикл по всем $input элементам, который заполняет те, у которых name нужный:
Работоспособность не проверял, но принцип должен быть ясен.
Код: Выделить всё
for($i=0;$i<$input->get_count();$i++){
if($input ->get_name_by_number($i) == "искомое_имя")
$input ->set_value_by_number($i,"необходимая_строка");
}
}