ruby-on-rails - 如何使用 capybara 测试图像替代值?

标签 ruby-on-rails testing cucumber webrat capybara

我正在尝试使用 Capybara 和 CSS 选择器定义一个步骤来测试图像的替代文本的值。

我根据自述文件示例为输入值编写了一个:

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

关于ruby-on-rails - 如何使用 capybara 测试图像替代值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2838117/

相关文章:

ruby-on-rails - '# => ' 在 Ruby/Rails 中代表什么?

javascript - 我如何测试我的 web api Post Web 方法以了解内部发生了什么?

java - 如何重用另一个步骤定义类 Appium/Cucumber/Java 中的方法

ruby-on-rails - Rails link_to :format => :xlsx not generating link to . xlsx 路径

ruby-on-rails - Intellij IDEA/文件监视程序: bootstrap file to import not found

mysql 错误帮助... 运行 rake db :setup RAILS_ENV ="production" 时

python - 不能将 attach_mock 与 autospec 函数模拟一起使用

sql - 是否有一个命令可以在不执行 SQL 查询的情况下测试它? (MySQL 或 ANSI SQL)

ruby - 如何在 Cucumber 表(多行参数)中使用正则表达式来区分表?

java - 为什么cucumber会找 "runTest.java"跑测试?