点击dropDownMenu项目 - selenium ruby

时间:2012-01-27 20:20:33

标签: ruby selenium drop-down-menu option

我正在尝试点击“复制地址”按钮,然后点击“运送到结算”选项。我可以按ID点击按钮,但我的下一行脚本会抛出错误,这就是我所拥有的 -

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进入dropdownMenu,然后点击“Billing to Shipping”选项

任何帮助......谢谢

3 个答案:

答案 0 :(得分:4)

我相信你问的问题和这个家伙一样......因为selenium-webdriver以同样的方式对待很多元素。

How do I set an option as selected using Selenium WebDriver (selenium 2.0) client in ruby

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')

答案 1 :(得分:3)

这应该为你做...

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

其中,value number是与“Billing to Shipping”相对应的选项的值

答案 2 :(得分:2)

这是我找到的更好的选择:

#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' }