[英]How to get value of a hidden element? (Watir)
只是想知道,如何使用watir獲取隱藏元素的值? 這是元素:
<input type="hidden" value="randomstringhere" id="elementid" name="elementname" />
這是我的代碼atm:
require "rubygems"
require "watir-webdriver"
$browser = Watir::Browser.new :ff
$browser.goto("http://www.site.com")
$grabelement = $browser.hiddens(:id, "elementid")
$blah = $grabelement.attribute_value("value")
puts $blah
這卡在最后一行,並在其中返回
code.rb:6:in `<main>': undefined method `attribute_value' for #<Watir::HiddenCollection:0x8818adc> (NoMethodError)
對不起這個基本問題,我已經搜索了,找不到任何東西。
提前致謝!
問題
您的代碼非常接近。 問題是這一行:
$grabelement = $browser.hiddens(:id, "elementid")
這行代碼表示要獲取ID為“ elementid”的隱藏元素的集合(即全部)。 如錯誤消息所述,該集合沒有attribute_value方法。 只有元素(即集合中的對象)才具有該方法。
解決方案(假設單個隱藏的ID匹配)
假設只有一條,你應該使用剛剛得到的第一場比賽hidden
的,而不是hiddens
(即丟棄s
):
$grabelement = $browser.hidden(:id, "elementid")
$blah = $grabelement.value
puts $blah
#=> "randomstringhere"
請注意,對於value屬性,您可以只執行.value
而不是.attribute_value('value')
。
解決方案(如果存在多個具有匹配ID的隱藏項)
如果實際上有多個,則可以遍歷集合或僅獲取第一個,依此類推:
#Iterate over each hidden that matches
browser.hiddens(:id, "elementid").each{ |hidden| puts hidden.value }
#Get just the first hidden in the collection
browser.hiddens(:id, "elementid").first.value
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.