我正在尝试编写一个 watir webdriver 脚本,它检索元素的属性,然后获取它们的值。 给定元素
<input id="foobar" width="200" height="100" value="zoo" type="text"/>
希望我能做类似下面的事情:
testElement = $b.element(:id, "foobar")
testElement.attributes.each do |attribute|
puts("#{attribute}: #{testElement.attribute_value(attribute)}")
end
我希望得到
id: foobar
width: 200
height: 100
value: zoo
type: text
最佳答案
我见过有人使用 javascript 来获取属性列表。下面显示了如何向 Watir::Element 添加方法以获取属性列表(尽管扩展 Watir 是可选的)。
#Add the method to list attributes to all elements
require 'watir-webdriver'
module Watir
class Element
def list_attributes
attributes = browser.execute_script(%Q[
var s = [];
var attrs = arguments[0].attributes;
for (var l = 0; l < attrs.length; ++l) {
var a = attrs[l]; s.push(a.name + ': ' + a.value);
} ;
return s;],
self )
end
end
end
#Example usage
browser = Watir::Browser.new
browser.goto('your.page.com')
el = browser.text_field(:id, 'foobar')
puts el.list_attributes
#=> ["width: 200", "type: text", "height: 100", "value: zoo", "id: foobar"]
关于ruby - 如何使用 watir webdriver 检索元素属性列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12485833/