нажав элемент dropDownMenu - рубин селена - PullRequest
1 голос
/ 28 января 2012

Я пытаюсь нажать кнопку «Скопировать адрес», а затем раскрывающийся пункт «Доставка на оплату». Я могу нажать кнопку по идентификатору, но моя следующая строка скрипта выдает ошибку, вот что у меня есть -

click_element(@driver, :id, 'copyAddress')
@driver.find_element(:class, 'dropDownMenu')

#select(@driver, :class, 'dropDownMenu', 'Billing to Shipping')
#@driver.find_element(:class, 'dropDownItemOver')
#select(@driver, :class, 'dropDownItem', 'Billing to Shipping')

Я пробовал все это до сих пор, но безуспешно .... После нажатия кнопки я пытаюсь попасть в выпадающее меню с помощью find_element, а затем нажимаю опцию 'Billing to Shipping' '

любая помощь .... спасибо

Ответы [ 3 ]

6 голосов
/ 28 октября 2012

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

Как установить параметр, выбранный с помощьюКлиент Selenium WebDriver (селен 2.0) в рубине

dropDownMenu = @driver.find_element(:class, 'dropDownMenu')
option = Selenium::WebDriver::Support::Select.new(dropDownMenu)
option.select_by(:text, 'Billing to Shipping')
option.select_by(:value, 'Billing to Shipping')
3 голосов
/ 10 марта 2016

Вот лучший вариант, который я нашел:

#Select the dropdown button 
dropdown_list = driver.find_element(:id, 'copyAddress')

#Get all the options from the dropdown
options = dropdown_list.find_elements(tag_name: 'option')

#Find the dropdown value by text
options.each { |option| option.click if option.text == 'Shipping to Billing' }
3 голосов
/ 29 января 2012

это должно сделать это для вас ...

@driver.find_element(:id, "copyAddress").find_element(:css,"option[value='1']").click

где номер значения - это значение параметра, соответствующего «Выставление счетов за доставку»

...