Если вы обнаружили какие либо ошибки, недочеты и неудобства или другие незачеты в программе напишите нам об этом на этом форуме - мы бум исправлять
-
SnoopDog
- Сообщения: 57
- Зарегистрирован: 22 окт 2009, 01:21
Сообщение
SnoopDog » 17 дек 2009, 19:11
Не знаю, насколько это ошибка. Хотел использовать эту функцию для проверки видимости поля ввода, но каким-то образом она умудряется кликнуть по полю в скрытом слое.
-
SnoopDog
- Сообщения: 57
- Зарегистрирован: 22 окт 2009, 01:21
Сообщение
SnoopDog » 17 дек 2009, 23:07
HTML
Код: Выделить всё
<html><body>
<div style="display: none; ">
<input type="text" name="testfield" />
</div>
</body></html>
XHE
Код: Выделить всё
// navigate to google
$browser->navigate("http://test/");
// wait on browser
$browser->wait(1);
$clicked = $input->click_by_attribute('name', 'testfield', true);
echo 'is clicked: ' . $clicked;
echo выдает is_clicked: 1
-
igvard
- Site Admin
- Сообщения: 241
- Зарегистрирован: 31 июл 2008, 22:53
Сообщение
igvard » 18 дек 2009, 17:01
Это не ошибка, так и должно быть. Элемент существует на странице, а значит по нему можно кликнуть, а видимый он или нет это не важно

-
SnoopDog
- Сообщения: 57
- Зарегистрирован: 22 окт 2009, 01:21
Сообщение
SnoopDog » 18 дек 2009, 18:00
Но это не очень похоже на эмуляцию человека. Человек-то это поле не видит..
Как можно определить видимость элемента? (Кажется, писал уже где-то..)
-
igvard
- Site Admin
- Сообщения: 241
- Зарегистрирован: 31 июл 2008, 22:53
Сообщение
igvard » 18 дек 2009, 19:56
можно поробывать получить атрибут дива style по его номеру через функцию $element->get_element_attribute_by_number($number,$attribute);
А номер дива определить как номер input элемента -1.
-
oneer
- Сообщения: 53
- Зарегистрирован: 15 июн 2009, 21:53
Сообщение
oneer » 18 дек 2009, 19:56
Ага, такой объект эксплорера. Хотя теоретически можно получить видимость объекта через dom модель, проверив его свойство visible
-
igvard
- Site Admin
- Сообщения: 241
- Зарегистрирован: 31 июл 2008, 22:53
Сообщение
igvard » 18 дек 2009, 20:00
oneer писал(а):Ага, такой объект эксплорера. Хотя теоретически можно получить видимость объекта через dom модель, проверив его свойство visible
Можно попробывать и так, но есть вариант, что если атрбут не определён у элемента, то вы получить его не сможете. В данном примере элемент скрывается не через visible, а через div. Но попробывать можно...
-
oneer
- Сообщения: 53
- Зарегистрирован: 15 июн 2009, 21:53
Сообщение
oneer » 18 дек 2009, 21:13
igvard писал(а):
Можно попробывать и так, но есть вариант, что если атрбут не определён у элемента, то вы получить его не сможете.
Хм, возможно. Но просто свойство css display наследуется потомками объекта, поэтому в dom думаю это тоже отражено.
-
SnoopDog
- Сообщения: 57
- Зарегистрирован: 22 окт 2009, 01:21
Сообщение
SnoopDog » 18 дек 2009, 23:21
oneer,
нет, свойства родителя не копируются детям.
igvard,
попробую действительно определить номер родителя и проверить его аттрибуты
-
bigfozzy
- Site Admin
- Сообщения: 3057
- Зарегистрирован: 28 июл 2008, 17:24
-
Контактная информация:
Сообщение
bigfozzy » 12 окт 2010, 16:19
еще актуально ?