我正在尝试点击“复制地址”按钮,然后点击“运送到结算”选项。我可以按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”选项
任何帮助......谢谢
答案 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' }