2013-01-24 21 views
2

我想從下拉框中選擇使用Ruby與watir-webdriver的值。下面是一個命令無法定位元素,使用{:id =>「」,:tag_name =>「select」}

browser.select_list(:id, "ctl00_SampleContent_ComboBox1_ComboBox1_OptionList").select("Whiskey") 

我得到了一個錯誤 無法找到元素,使用{:ID => 「ctl00_SampleContent_ComboBox1_ComboBox1_OptionList」:TAG_NAME => 「選擇」}

任何想法有什麼不好? 這裏是全碼:

# 1.Open http://www.asp.net/ajax/ajaxcontroltoolkit/Samples/Default.aspx 
    #browser = Watir::Browser.new 
    #browser = Watir::Browser.new :ie 
    profile = Selenium::WebDriver::Firefox::Profile.from_name 'WatirWebDriver' 
    #profile.add_extension 'autoauth-2.1-fx+fn.xpi' 
    browser = Watir::Browser.new :firefox, :profile => profile 
    browser.goto 'http://www.asp.net/ajax/ajaxcontroltoolkit/Samples/Default.aspx' 

    #2.Click ComboBox link on the left pane of the page 
    browser.a(:id, 'ctl00_SamplesLinks_ctl15_SamplesLink').click 

    #3.Verify that http://www.asp.net/ajax/ajaxcontroltoolkit/Samples/ComboBox/ComboBox.aspx URL opened 
    if browser.url.eql? "http://www.asp.net/ajax/ajaxcontroltoolkit/Samples/ComboBox/ComboBox.aspx" 
    puts "Error loading page \"http://www.asp.net/ajax/ajaxcontroltoolkit/Samples/ComboBox/ComboBox.aspx URL opened\"" 
    return false 
    end 

    #4.Select 「Whiskey」 in the combo-box 
    #browser.select_list(:id, 'ctl00_SampleContent_ComboBox1_ComboBox1_OptionList').select_value('Whiskey') 
    puts "!!!" 
    browser.select_list(:id, "ctl00_SampleContent_ComboBox1_ComboBox1_OptionList").when_present.select("Whiskey") 
+1

你能也粘貼HTML爲的Watir-的webdriver找不到元素? –

+1

如果我按照你的鏈接使用去演示組合框頁面,我出現的選擇列表的ID: 「ctl00_SampleContent_ComboBox1_ComboBox1_TextBox」 ...和類型的「文本」 ...這將解釋爲什麼你的代碼不工作,但也許我不知道如何到達同一頁面,這就是爲什麼我要求你提供你正在嘗試與之交互的HTML樣本。 –

+0

這裏是沒有其他選擇的代碼:

    ...
  • 威士忌
  • ...
Sergii

回答

4

這不工作:

require "watir-webdriver" 
browser = Watir::Browser.new 
browser.goto "http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/ComboBox/ComboBox.aspx" 
browser.button(id: "ctl00_SampleContent_ComboBox1_ComboBox1_Button").click 
browser.ul(:id, "ctl00_SampleContent_ComboBox1_ComboBox1_OptionList").li(text: "Whiskey").click 
+0

太棒了,一切正常!謝謝! 有一個小問題:browser.button(** id:「...」**)和browser.button(**:id,「...」**)有什麼區別 – Sergii

+2

沒有區別。 Ruby 1.9.3新增了「id:」語法。就這樣。 –