Tag: 水豚

为什么似乎Capybara“等待页面加载”计时器适用于匹配器但不适用于查找器?

我目前正在运行一个测试,检查一个特定的元素,然后做一些东西。 该元素需要一些javascript来完成踢,但在计时器我已经有Capybara设置。 由于某些原因 assert session.has_xpath?(xpath_route) 工作正常,但是 assert link=session.first(:xpath, xpath_route) 失败,说它找不到元素。 并且很快 – 在等待计时器用完之前很久。 我只能假设这意味着计时器只适用于匹配器,而不是发现者,这很好,但我怎么能强迫它继续寻找直到找到我正在寻找的元素?

如何基于capybara中的元素发送JavaScript

我希望在Capybara做类似的事情: browser.execute_script(“arguments[0].setAttribute(‘value’, ‘value’)”, element) 上面的行是在selenium / ruby​​上运行的,但是使用带有capybara的execute_script只需要1个参数(脚本),因此我无法定义我希望执行脚本的元素……任何想法?

capybara – 使用xPath查找离开范围内

我正在尝试使用默认的Rails日期,时间和日期时间字段与Capybara构建日期选择器。 我正在使用within方法来查找字段的选择框,但是当我使用xPath查找正确的框时,它会离开within内并找到元素页面上的第一个匹配项。 这是我正在使用的代码。 我正在测试的页面有2个日期时间字段,但由于此错误,我只能让它更改第一个。 目前我有一个带有id的div容器,它包含了datetime字段,但我确实打算通过标签切换代码来查找。 module Marketron module DateTime def select_date(field, options = {}) date_parse = Date.parse(options[:with]) year = date_parse.year.to_s month = date_parse.strftime(‘%B’) day = date_parse.day.to_s within(“div##{field}”) do find(:xpath, “//select[contains(@id, \”_#{FIELDS[:year]}\”)]”).select(year) find(:xpath, “//select[contains(@id, \”_#{FIELDS[:month]}\”)]”).select(month) find(:xpath, “//select[contains(@id, \”_#{FIELDS[:day]}\”)]”).select(day) end end def select_time(field, options = {}) require “time” time_parse = Time.parse(options[:with]) hour = time_parse.hour.to_s.rjust(2, ‘0’) minute = […]

如何用Capybara关闭浏览器?

我有一种情况,当我使用(使用:selenium驱动程序)多个浏览器与Capybara测试我的前端。 如果不需要Capybara,如何使用Capybara关闭其中一些?

Rails:为什么RSpec会崩溃我的被覆盖的Devise控制器请求规范?

更新:哦,好悲伤,这是一个糟糕的合并后的红鲱鱼。 沿着这条线的某个地方,以下内容从spec / spechelper.rb的清理中删除 Dir[“#{Rails.root}/app/**/*.rb”].each {|f| load f} 现在这已经恢复,一切都在恢复。 我怀疑它只是加载平面目录,而不是嵌套目录,使它看起来像命名空间问题。 (我不能回答我自己的问题,因为这是一个新帐户,我没有代表) 原始问题: 我的大多数RSpec / Capybara测试工作正常,但我有一个测试只是试图访问路径爆炸,我坚持调试。 我怀疑这是一个命名空间问题,但我不知道如何解决这个问题; 任何帮助感激不尽。 整个测试是: require ‘spec_helper’ describe ‘Registrations’ do context ‘when debugging the blocking issue’ do it ‘this minimal test should pass’ do visit new_user_registration_path end end end 错误消息是: $ bin / rspec spec / requests / users / registrations_spec.rb 失败: […]

检查元素是否有两个类

我有2个可能的div。 和 有没有办法检查div元素是否有2个类a和b? 我使用Ruby,Capybara和XPath来选择元素,但如果可以解决问题,则css很好。

使用Capybara下载CSV

对于rspec测试,我需要以CSV文件格式下载报告并validation给出的信息。 单击按钮时,将从网页生成报告。 浏览器保存对话框已打开,提供打开或保存选项。 如何使用rspec和Capybara将文件保存到计算机中?

使用url参数时,在没有机架的情况下运行Capybara会产生错误

这是我的设置,基于这个建议: 如何让Cucumber / Capybara / Mechanize对抗外部非铁轨站点 它一直有效,直到我向URL添加参数。 有关解决这个问题的建议吗? require ‘rspec’ require ‘capybara/rspec’ require ‘capybara/dsl’ @test_url = “test” RSpec.configure do |config| config.include Capybara::DSL end Capybara.configure do |config| config.run_server = false config.current_driver = :selenium config.app = “fake app name” config.app_host = “http://site.com/#{@test_url}” end 这很好用: describe “the page, without URL parameters” do it “shows the regular form” do […]

capybara-webkit:自动保存RSpec测试失败的屏幕截图

如果使用带有Rspec的capybara-webkit测试失败,如何自动保存html和屏幕截图? 如何在RSpec测试失败时执行回调。 加分:如何避免出现以下错误: Capybara::Driver::Webkit::WebkitInvalidResponseError 执行此代码时: require ‘capybara/util/save_and_open_page’ path = “/#{Time.now.strftime(‘%Y-%m-%d-%H-%M-%S’)}” png = Capybara.save_and_open_page_path + “#{path}.png” page.driver.render Rails.root.join(png)

无法在Capybara测试中触发鼠标事件

我正在使用Capybara 1.0.0,我的页面中有一个链接,当鼠标hover在该块上时可以看到该链接。 所以我想在测试中触发鼠标,以便我可以单击该隐藏的链接。 我用Google搜索,但找不到适合我的解决方案。 你能帮助我吗?