Selenium: тестирование пользовательских элементов формы - PullRequest
0 голосов
/ 01 февраля 2012

Блоки выбора, флажки и радиокнопки сложно стилизовать с помощью CSS, поэтому обычно применяются плагины, заменяющие собственные элементы формы обычными элементами, к которым проще применять CSS.

JQuery UI SelectmenuВот пример: http://filamentgroup.com/lab/jquery_ui_selectmenu_an_aria_accessible_plugin_for_styling_a_html_select/

Эти плагины обычно создают разметку следующим образом:

<select name="mySelect" style="display: none; ">
<option value="1">1</option><option value="2">2</option><!-- ... -->
</select>
<a class="pretty-select-box">...</a>
<ul class="pretty-select-box-dropdown-list">
    <li>Item 1</li><li>Item 2</a></li><!-- ... -->
</ul>

Проблема в том, что когда такие плагины установлены, тесты Selenium с использованием собственных элементов формы завершатся неудачно сэто исключение:

OpenQA.Selenium.ElementNotVisibleException : Element is not currently visible and so may not be interacted with

Каков наилучший способ исправить это?Я полагаю, что это обычная проблема, но я не смог найти много информации об этом.

Ответы [ 2 ]

0 голосов
/ 31 мая 2013

Вы, вероятно, хотите, чтобы сайт работал (функционально, даже если он не симпатичный) без включенных модных плагинов. Так что, может быть, отключить плагины и сделать тестирование проще?

0 голосов
/ 03 февраля 2012

Я не знаю, как отключить плагин, который вы используете на веб-странице.Однако я могу вам сказать, что одна из основных целей WebDriver - взаимодействовать со страницей так, как ее видит пользователь.Следовательно, вы не можете напрямую взаимодействовать с элементами, которые не видны.У вас всегда есть возможность использовать JavaScript для управления элементом, если у вас абсолютно есть для взаимодействия со скрытым элементом.Имейте в виду, однако, что при этом вы теряете одно из основных преимуществ использования WebDriver (особенно с так называемыми «нативными событиями»), а именно то, что вам не нужно беспокоиться о ручном запуске событий на элементах, так какводитель сделает это за вас.

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