4

要素の属性を取得してその値を取得するwatirwebdriverスクリプトを作成しようとしています。与えられた要素

  <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
4

3 に答える 3

5

私は、属性のリストを取得するために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"]
于 2012-09-19T14:19:10.040 に答える
2

@Željko-Filipinからの回答は日付が付けられている可能性があります...彼がリンクしているドキュメントは、2015年8月の時点で、DOM要素の属性値を抽出するメソッドとしてリストされています。attribute_value

commonwatir-4.0.0、、watir-webdriver-0.6.11およびRuby 2.2.2があります。たとえば、上記のメソッドはタグのを抽出しhrefますa

于 2015-08-23T22:19:05.283 に答える
1

あなたは何をしようとしているのですか?

私が見る限り、クラスにはメソッドElementがありません: http ://watir.github.com/watir-webdriver/doc/Watir/Element.html#attributes

要素のHTMLを取得して解析できます。

browser.element.html
于 2012-09-19T12:12:36.747 に答える