计算器,
这是我正在尝试做的事情
def get_element_from_list(root, item, index)
@browser.elements(:css => root).each do |element|
if element.present?
return element.element(:css => item, :index => index)
end
end
raise Selenium::WebDriver::Error::NoSuchElementError
end
get_element_from_list('div[class*=x-combo-list]', 'x-combo-list-item', index).click
给了我Watir :: Exception :: MissingWayOfFindingObjectException:无效属性:: css
我不明白的是,如果我只是做
@browser.elements(:css => 'div[class*=x-combo-list]').each do |element|
if element.present?
return element.element(:css => 'x-combo-list-item', :index => index)
end
end
基本上用它无效的实际字符串替换root和item。
答案 0 :(得分:1)
我认为可能存在一个错误,阻止使用:css和:index locator定位元素 - Issue 241。
您可以通过获取元素集合然后在特定索引处获取元素来解决此问题:
return element.elements(:css => 'x-combo-list-item')[index]
(请注意,我认为这个css选择器可能是错误的。它可能是.x-combo-list-item
。)
或者,假设x-combo-list-item
实际上是元素的类,您可以这样做:
return element.element(:class => 'x-combo-list-item', :index => index)