2014-01-31 99 views
1

我正在使用ruby中的HTML代碼,並試圖從表中檢索值。這裏的HTML代碼如下所示用ruby刮HTML與

<table class="forumline" border="0" width="90%"> 

<tr> 

<td align="center" class="row2" width="15%">Number<br><input type="text" name="T12" size="20" value="33.5756"></td> 

</tr> 
</table> 

我也得在我的節目成功地找到了名字,但我怎麼會得到屬於它的價值是'33.5756'

require 'selenium-webdriver' 

driver = Selenium::WebDriver.for :firefox 
    driver.get("---site goes here---") 
    table_data = driver.find_element(:name, "T13") 
+0

我可以得到您的表名和屬性 – Sanket

+0

hm確定它已經很長一段時間,因爲我處理Htm l代碼,但表中沒有名稱... Im進行雙重檢查 –

+1

嘗試'table_data.attribute(「value」)'或'get_value(:name =>「T13」)' – Santhosh

回答

1

編寫代碼如下:

require 'selenium-webdriver' 

driver = Selenium::WebDriver.for :firefox 
driver.get("---site goes here---") 
table_data = driver.find_element(:name, "T12") 
val = table_data.attribute('value') 
puts val # => '33.5756' 

的方法文檔如下:

(?字符串)屬性(名稱):

Selenium::WebDriver::Element#attribute

獲取元素的給定屬性的值。將返回當前值,即使在頁面加載後修改了該值。更確切地說,這個方法將返回給定屬性的值,除非該屬性不存在,在這種情況下,返回具有相同名稱的屬性的值。如果兩個值均未設置,則返回nil。 「style」屬性最好轉換爲帶有後綴分號的文本表示。以下行爲被認爲是「布爾」屬性,將返回「true」「false」

異步,支持自動對焦,自動播放,託運,結構緊湊,完整,控制,聲明,defaultchecked,defaultselected,推遲,殘疾人,可拖動,結束,formnovalidate,隱藏,不確定,iscontenteditable,ismap,itemscope,循環,多重,靜音,nohref,noresize,noshade,novalidate,nowrap,打開,暫停,pubdate,只讀,required,reversed,scoped,精選,spellcheck,truespeed,willvalidate

+0

有沒有辦法讓瀏覽器不要彈出一旦第一行代碼被打開 –

+0

我沒有給你.. –

+0

調用Selenium :: WebDriver.for:firefox打開如果需要,可以自動啓動Firefox窗口以及任何其他類型的瀏覽器。有沒有辦法使用硒webdriver,而沒有它打開瀏覽器 –