Метод attribute
объекта gem не выполняет никакого форматирования значения атрибута. Он просто возвращает то, что возвращается от Selenium-WebDriver (или Watir-Webdriver).
В случае логических атрибутов это означает, что возвращается истина или ложь. Из Selenium-WebDriver#attribute документации:
Следующие считаются «логические» атрибутами, и будет возвращать либо «истина» или «ложь»:
асинхронные, автофокус, автозапуск, проверил, компактный, полный , элементы управление, заявляют, defaultchecked, defaultselected, отложить, инвалиды, перетаскиваемое, закончился, formnovalidate, скрытый, неопределенный, iscontenteditable, ISMAP, itemscope, петля, несколько приглушен, nohref, NORESIZE, noshade, NOVALIDATE, Nowrap, открытым , приостановлено, публичный, только для чтения, перевернутый, скошенный, с eamless, поиск, выбран, проверка орфографии, truespeed, willvalidate
Как вы можете видеть, атрибут «отключен» включен в этот список, и, таким образом, возвращает логическое значение.
Если вы действительно хотите проверить фактическое значение атрибута, вам придется проанализировать HTML. Если HTML не является простым, я бы предложил использовать Nokogiri (или другой парсер HTML), а не писать свои собственные. В Нокигири:
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
получил 'undefined method 'значение' для" true ": String' error –