簡體   English   中英

如何獲得隱藏元素的價值? (的Watir)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM