Я пытаюсь определить шаг для тестирования значения сопроводительного текста изображения с помощью селекторов CSS и Капибары.
Я записал один для входных значений на основе readme примеров:
Then /^I should see a value of "([^\"]*)" within the "([^\"]*)" input$/ do |input_value, input_id|
element_value = locate("input##{input_id}").value
element_value.should == input_value
end
Но я не могу понять этого... что-то как:
Then /^I should see the alttext "([^\"]*)"$/ do | alt_text |
element_value = locate("img[alt]").value
end
Кто-либо знает, как я могу определить местоположение значения сопроводительного текста?
Capybara использует xpath по умолчанию, так что если вы не изменили эту настройку, это может быть частью вашей проблемы. (Вы можете использовать locate(:css, "img[alt]")
).
Я бы написал тесты с использованием xpath примерно так:
Then /^I should see the alt text "([^\"]*)"$/ do | alt_text |
page.should have_xpath("//img[@alt=#{alt_text}]")
end
Then /^I should see a value of "([^\"])" within the "([^\"])" input$/ do |input_value, input_id|
page.should have_xpath("//input[@id=#{input_id} and text()=#{input_value}]
end
Я полагаю, что метод value
возвращает значение полей ввода и не может использоваться для проверки атрибута.
Вместо этого может сработать что-то вроде этого:
page.should have_css("img[alt=the_alt_text_you_are_expecting]")