BDD - проблема работает без пользовательского интерфейса

Я новичок в использовании огурца и рубина для выполнения модульных тестов BDD и хотел бы получить некоторую помощь в отношении ошибки, возникающей при попытке запустить тест без пользовательского интерфейса.

Если у меня есть какие-либо условия или неправильный этап, пожалуйста, дайте мне знать.

Сценарий: на странице есть раскрывающийся список, который возвращает данные, как только вы начинаете печатать. В тесте я ввожу значение, и он ищет данные, а когда он возвращается, я нажимаю на выбранное значение. Это делается с помощью приведенного ниже кода,

selectClient.fill_in 'client', with: client_name page.has_no_css?('.Select-loading-zone') selectClient.find('[name=client]').send_keys(:enter)

selectClient - это переменная, которая используется для поиска раздела, в котором расположен раскрывающийся список, чтобы я не искал всю страницу, чтобы найти элемент управления.

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

Capybara:: Poltergeist:: MouseEventFailed: Сбой щелчка по координатам [122, 261.5]. Poltergeist обнаружил еще один элемент с помощью селектора CSS 'html.no-js body.ng-scope.rebranding div.wrapper.ng-scope div.inner.ng-scope div.container-fluid div.ng-scope div#module-container.ng-scope div.myob section.ledger-upgrade div.row div.col-xs-24 div div div.form-group div.Select.create-business.Select- single.is-searchable div.Select-control span#act-select-2- value.Select-multi-value-wrapper div.Select-placeholder'в этой позиции. Это может перекрывать элемент, с которым вы пытаетесь взаимодействовать. Если вам не нужны перекрывающиеся элементы, попробуйте использовать node.trigger('click').

Я попробовал предлагаемое изменение, используя следующие

selectClient.find('[name=client]').trigger('click')

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

Capybara::NotSupportedByDriverError: Capybara::Driver::Node# триггер

Без пользовательского интерфейса щелчок не срабатывает и не выбирается.

Я попробовал следующие варианты, но все еще не повезло, так как выбранный не щелкает или выбран без пользовательского интерфейса.

selectClient.find('[name=client]', :visible=> false).trigger('click')selectClient.find('[name=client]', :visible=> false).trigger(':enter')selectClient.find('[name=client]', :visible=> false).trigger(':return')selectClient.find('[name=client]', :visible=> false).send_keys : enterselectClient.find('[name=client]', :visible=> false).native.send_keys : return

Я также пытался использовать Javascript с приведенным ниже фрагментом кода, но, похоже, не нажимает и не выбирает, когда нет пользовательского интерфейса.

page.execute_script('var keyEvent = document.createEventObject ? document.createEventObject() : document.createEvent("Events"); if(keyEvent.initEvent){ keyEvent.initEvent("keydown", true, true); } keyEvent.keyCode = 13; keyEvent.which = 13; document.dispatchEvent ? document.dispatchEvent(keyEvent) : document.fireEvent("onkeydown", keyEvent); document.getElementsByName("client")[0].dispatchEvent(keyEvent);')

Я использую poltergeist (1.12), капибару (2.6.2), selenuim-webdriver (2.50), огурец (>2.0)

Пожалуйста, дайте мне знать, если требуется дополнительная информация.

Спасибо.

0 ответов

Другие вопросы по тегам