頁面對象gem的attribute
方法不執行任何格式的屬性值。它只是返回從Selenium-WebDriver(或Watir-Webdriver)返回的內容。
在布爾屬性的情況下,這意味着將返回true或false。從Selenium-WebDriver#attribute文檔:
以下行爲被認爲是「布爾」屬性,將返回 無論是「真」或「假」:
異步,支持自動對焦,自動播放,檢查,緊湊,完整的, 聲明,defaultchecked,默認選擇,延遲,禁用,可拖動, 結束,formnovalidate,隱藏,不確定,iscontenteditable, ismap,itemscope,循環,多重,靜音,nohref,noresize,noshade, novalidate,nowrap,open ,暫停,pubdate,只讀,必需, 反轉,範圍,s eamless,尋找,選擇,拼寫檢查,truespeed, willvalidate
正如你所看到的,「已禁用」屬性包含在該列表中,因此返回一個布爾值。
如果你真的想檢查實際的屬性值,你將不得不解析HTML。除非HTML很簡單,否則我會建議使用Nokogiri(或其他HTML解析器),而不是編寫自己的。在Nokogiri:
require 'nokogiri'
# Get the HTML of the span
span_html = page.in_iframe(:id => 'MembersAreaFrame') do |frame|
page.span_element(:xpath => "//span[text()='Edit Member']", :frame => frame).html
end
# Parse the span
doc = Nokogiri::HTML.fragment(span_html)
root_element = doc.at_css('*')
# Check the disabled attribute of the root element (ie the span)
expect(root_element['disabled']).to eq("disabled")
'.... attribute('disabled').value'。 – mudasobwa
得到'未定義的方法'值爲「真」:字符串錯誤 –