2015-12-06 3 views
0

Я просто ищу автоматическую кнопку на главной странице. Я использую следующий фрагмент кодаавтоматизировать веб-страницу нажмите кнопку в рубине

Given /^I press "(.*)"$/ do |action| 
    browser.button(:text => action).click 
end 

Мой файл функция имеет следующий

Scenario: Default Search 
    Given I press "Search" 

Исполняя файл функции, я получаю следующую ошибку

*** WARNING: You must use ANSICON 1.31 or higher (https://github.com/adoxa/ansicon/) to get coloured output on Windows 
Ambiguous match of "I press "Search"": 

C:/Users/............test/features/step_definitions/Moorings.rb:8:in `/^I press "(.*)"$/' 
+0

Похоже, у вас есть более одной кнопки с текстом 'Поиск' на странице. Вы? –

+0

Да, похоже, есть более одного поиска. Я использую следующую страницу www.moorings.com – rubytester

+0

ohh .. тогда это действительно просто. попробуйте использовать что-то уникальное, например, ID. Я приведу пример как ответ ниже –

ответ

0

Хаа ... у вас есть 3 появление текста "Search" на этой странице (www.moorings.com), поэтому драйвер watir действительно не знает, какой из них щелкнуть.

Как я уже упоминал выше, попробуйте использовать что-то уникальное, может быть, id, как показано ниже:

#step definition 
Given /^I press "(.*)", with id "(.*)"$/ do |text, id| 
    browser.button(id: id, :text => text).when_present.fire_event :click 
end 

#feature 
Scenario: Default Search 
    Given I press "Search", with id "edit-search" 

Обратите внимание, что я добавил еще одно ограничение по идентификатору к атрибутам для поиска.

Также обратите внимание, что я добавил дополнительный уровень проверки: .when_present. Это гарантирует, что тест ждет, пока указанная кнопка появится на странице, прежде чем пытаться щелкнуть ее. Однако к этому привязано время ожидания около 30 секунд.

+0

Привет, спасибо за это. Однако я получаю следующее сообщение об ошибке с этим новым кодом. Учитывая, что я нажимаю «Поиск», с идентификатором «edit-search» неопределенная локальная переменная или метод 'browser 'для # (NameError) – rubytester

+0

Фактически я сделал ошибку с именованием переменной. – rubytester

Смежные вопросы