这是我的页面规格,该页面使用按钮触发一些Javascript来扩展截断的/usr/local/bin/
文本。
/usr/bin/
当我运行Rails服务器并在浏览器中访问该页面时,“更多信息”按钮肯定可以正常工作。但是,当我运行规范时,该按钮似乎不起作用:
description
现在,我知道完全有可能是某个问题导致按钮实际上不起作用,但是我想知道问题是否出在我们是否正在检查 it 'gets the description and inventory', js: true do
product = Product.create!(name: "Test Product", inventory: 0, description: "This is a test description with more text than should be there.")
customer = Customer.create(:name => Faker::Name.name)
invoice = Invoice.create
order = Order.create(customer: customer, invoice: invoice)
order.products << product
visit products_path
expect(page).to have_content(product.name, count: 1)
expect(page).not_to have_content product.description
click_button "More Info"
expect(page).to have_content product.description
expect(page).to have_content "Sold Out"
product.inventory = 1
product.save
visit products_path
click_button "More Info"
expect(page).to have_content "Available"
end
从点击按钮之前就被刮掉了。
有人知道这是否确实是问题所在吗?是否有办法“重新抓取”页面?我不想重新加载或刷新页面,因为那样会使JS进入其初始按钮前状态。
答案 0 :(得分:1)
假设此功能测试并且您按照Capybara自述文件中的指示进行了capybara/rspec
的操作,则Capybara应该在测试中看到js
元数据,交换到Capybara.javascript_driver
配置的驱动程序(默认为:selenium-将打开Firefox),并且由于Capybara从不缓存该页面(每次您在浏览器中查看实时页面时都不会缓存该页面),因此无需重新加载/刷新/重新整理页面。
如果上述所有内容都正确,并且您看到此问题,则说明您的页面上有错误,或者您正在使用过时的驱动程序(Poltergeist等)来运行不支持JS的测试您实际上是在页面中使用的。