【问题标题】:unable to locate element, using {:id=>"", :tag_name=>"select"}无法定位元素,使用 {:id=>"", :tag_name=>"select"}
【发布时间】:2013-01-24 22:34:05
【问题描述】:

我想使用 Ruby 和 watir-webdriver 从下拉框中选择值。这是命令

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

我得到了一个错误 无法定位元素,使用 {:id=>"ctl00_SampleContent_ComboBox1_ComboBox1_OptionList", :tag_name=>"select"}

任何想法有什么问题吗? 这是完整的代码:

# 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")

【问题讨论】:

  • 您能否也粘贴 HTML 中 Watir-webdriver 无法定位的元素?
  • 如果我按照您用来进入演示组合框页面的链接,为我出现的选择列表的 id 为:“ctl00_SampleContent_ComboBox1_ComboBox1_TextBox”...和一种“文本”.. . 这可以解释为什么您的代码不起作用,但也许我无法与您访问同一页面,这就是为什么我要求您提供您尝试与之交互的 HTML 示例。
  • 这里是没有其他选择的代码:
      ...
    • 威士忌 ...
  • Abe Heward 你明白了:我需要去那个网站选择“威士忌”并检查我是否选择了“威士忌”
  • Željko 的答案是正确的。

标签: ruby watir-webdriver


【解决方案1】:

这样就可以了:

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

【讨论】:

  • 太好了,一切正常!!!谢谢!一个小问题:browser.button(id: "...") 和 browser.button(:id, "...") 有什么区别
  • 没有区别。 “id:”语法是 Ruby 1.9.3 的新语法。就是这样。
猜你喜欢
  • 2023-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-18
  • 1970-01-01
  • 2020-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多