Перейти к содержимому

vitorg

Регистрация: 01 ноя 2007
Offline Активность: 25 янв 2020 23:35
-----

Мои сообщения

В теме: Подгрузка файла без input'а

18 июля 2014 - 07:22

Расхайдить и так всем понятно, а вот заэфпячить слышу в первый раз :)

В теме: Подгрузка файла без input'а

16 июля 2014 - 20:46

Сейчас используем первый вариант совместно с xvfb, соответственно проблемы одновременных нажатий нет.

В теме: Выбор из выпадающего списка

03 апреля 2014 - 09:16

Как я уже говорил, в данном конкретном примере разница скорее идейная, если придерживаться вашей идеи, то писать надо //select/option - тоже будет выбран первый элемент, но только в результате особенности работы Selenium с локаторами, я бы на месте Selenium для таких случаев выкидывал исключение типа MoreThanOneElementMatchedException и отправлял бы всех в сад :) Но в других ситуациях использование подобных конструкций может привести к неожиданному и неочевидному результату.


В теме: Выбор из выпадающего списка

03 апреля 2014 - 08:38

По спецификации select может содержать 2 типа тегов: <!ELEMENT SELECT - - (OPTGROUP|OPTION)+, не думаю, что есть законный способ поместить <input type=hidden/> внутрь select, но допускаю, что там могут оказаться и другие теги типа meta, script и т.п.


В теме: Выбор из выпадающего списка

02 апреля 2014 - 15:13

правильнее писать (//select/option)[1], а не //select/option[1]? При том, что наличие у select других чайлдов, отличных от option - это хак,баг и провокация. А при использовании сета есть вероятность "влететь" в совершенно другой селект.

 

Не думаю, что наличие у select других потомков отличных от option является хаком, даже наоборот, они там могут запросто оказаться и будут правы :D

 

Правильнее в данной ситуации исключительно потому, что (//select/option)[1] - это гарантированный возврат одного элемента, а //select/option[1] может вернуть любое количество элементов в зависимости от ситуации и от того как в будущем изменится вёрстка, т.е. это скорее идейно правильный подход, но результаты будут одинаковыми в данном примере. Если уж на то пошло, то и "[1]" в вашем варианте лишняя, первый элемент удачно выберется и так: //select/option... Но это исключительно удача :)

 

В реальной же ситуации надо конечно жёстко фиксировать select (по id или по привязке к форме в которой он находится и т.п.), а дальше уже выбирать конкретный option. Данный способ со скобками лично мне видится намного более однозначным и очевидным по принципу работы, плюс имеет меньше побочных эффектов.