ruby - 如何使用 watir webdriver 检索元素属性列表

标签 ruby watir-webdriver

我正在尝试编写一个 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/

相关文章:

google-chrome - 禁用chrome下载多个文件确认

javascript - Ruby,Watir,无法单击由 Java 脚本加载的框架中的按钮

javascript - 如何使用复选框将电子邮件保存给订阅者?

ruby - rbenv 系统范围安装导致不安全操作

ruby - libgit2中有 'git cherry'吗

ruby - 浏览器之间共享的 Sinatra Session 数据

ruby - 格式化数字以每隔三位数拆分一次

Rspec 和 watir-webdriver;断言元素不存在

watir - Selenium::WebDriver::Error::MoveTargetOutOfBoundsError:元素无法滚动到 View 中:[object HTMLSpanElement]

ruby - 运行 irb 文件时出错