Tag: 水豚

capybara:page.should have_no_content对display:none元素无法正常工作

我想使用page.should have_no_content来检查页面是否没有向用户显示标签,这里是HTML中的内容: My Account … 因此,当我使用page.should have_no_content(“我的帐户”)时,它返回false而不是true。

在Rails 3中使用Cucumber / Capybara,如何设置自定义User-Agent字符串?

在我的Rails 3应用程序中,我有不同的iPhone与桌面浏览器的布局。 我正在尝试使用Cucumber / Capybara测试iPhone布局。 到目前为止,我在请求的HTTP标头中设置iPhone User-Agent字符串的所有尝试都失败了。 我已经使用Cucumber和Capybara教程跟踪了测试自定义头文件和ssl,但它似乎没有在HTTP请求中设置User-Agent字符串。 如果我只是使用我的iPhone浏览我的Rails应用程序,我会得到正确的布局。 我正在使用Rack-Mobile-Detect将Rails request.format设置为:iphone。 关于如何使这项工作的任何想法? 我准备放弃Capybara并回到Webrat。 这是我到目前为止所拥有的: Feature: Detect Browser In order to have different layouts for iPhone vs. desktop browsers As a developer I want to show different layouts for different browsers Scenario: Show home page with desktop layout Given I am using “a desktop browser” When […]

如何在Rails上编写Stripe checkout的集成测试?

我试图为我的Rails 3.2应用程序为Stripe的checkout.js [ https://checkout.stripe.com/checkout.js ]编写集成测试。 在手动测试时(使用Stripe的测试键)条纹检查对我来说正常工作,但我无法让fill_in检测并fill_in条带结帐iframe模式中的电子邮件字段。 我正在使用无端 javascript的poltergeist ,虽然也用capybara-webkit和甚至selenium测试了同样的问题。 我要测试的是完整的订阅注册流程,以显示新用户在Stripe中输入付款详细信息后可以创建订阅者帐户 – 但我无法通过Stripe结帐弹出窗口。 这是我before .. do : describe “show Stripe checkout”, :js => true do before do visit pricing_path click_button ‘plan-illuminated’ stripe_iframe = all(‘iframe[name=stripe_checkout_app]’).last Capybara.within_frame stripe_iframe do fill_in “email”, :with => “test-user@example.com” fill_in “billing-name”, :with => “Mr Name” fill_in “billing-street”, :with => “test Street” fill_in “billing-zip”, […]

如何用水豚填写日期时间 – 本地字段?

我正在使用Cocoon添加记录。 ID类似于workshop_instance_sessions_attributes_1477654140_start_time 。 目前我正在遍历DOM并获取动态生成的ID(这很好),所以我可以使用它们来引用输入来填充。我已经尝试了很多东西(许多在控制台中工作)但似乎仍然无法获得工作的规范。 下面是我尝试过的一些选择( first是保存id的变量, @time基本上是Time.now,当块执行时递增)。 在控制台中工作: page.evaluate_script(“document.getElementById(‘#{first}’).value = ‘#{@time.strftime(‘%Y-%m-%eT%H:%M’)}'”) page.evaluate_script(“$(‘##{first}’).val(‘#{@time.strftime(“%Y-%m-%eT%H:%M”)}’)”) 在控制台中不起作用: fill_in first, with: @time.strftime(“%Y-%m-%eT%H:%M”) find(“##{first}”).set(@time.strftime(“%Y-%m-%eT%H:%M”)) 这些都已经在一个内部块(我遇到的一个常见问题)中,我知道正确工作正确,因为正确设置了第一个变量。 作为参考我的HTML看起来像这样: 有关如何使此规范工作的任何指示将非常感激。

Cabybara根据元素名称查找元素

您好我正在尝试选择输入字段并根据元素名称将值添加到条带的iframe中。 这不行 page.find(:name, ‘exp-date’) 我能够选择带有id选择器的root div,但我不能选择输入字段,它是root div中某处的子节点 find(:id, “root”) 知道如何定位这些字段

如何声明该图像已与Capybara一起上传?

假设我有一个表单,用户可以创建一个附有图像的post。 我想确保附加的图像显示在下一页: visit url fill_in the_form click_on ‘Create’ assert_selector ‘.post’ post = Post.first img = page.find ‘.post .image’ assert_equal post.file.thumb.url, URI(img[:src]).path 但我被告知要避免在系统测试中断言数据库对象。 那我该怎么办?

site_prism是否允许使用除CSS之外的其他选择器?

我正在研究允许我沿着Capybara使用Page Object Pattern的gem。 我发现了site_prism,看起来很有前途。 我的问题是,有没有办法用css以外的选择器定义元素? 像Xpath,Dom,也许只是元素的id等。 感谢致敬!

当input.file具有动态ID时,如何附加文件?

我遇到了动态ID问题。 attach_file命令需要输入type =“file”的id名称。 问题是id是动态的 (id=”document_22″) #indicating the 22nd document uploaded to this section. 有没有办法获得元素的id? 就像是… attach_file(find(:xpath, “.//input[@name=’file_upload’]”).get(‘@id’), ‘C:\\Users\\testbox\\Documents\\testdoc.xls’)

如何使用Ruby中的Safari技术预览设置Capybara

我无法使用Capybara和Selenium与Safari技术预览(STP)建立会话。 Capybara甚至不打开浏览器窗口。 我升级到Ruby 2.3.0 Capybara 2.14.2 Selenium 3.4.0 我从https://developer.apple.com/safari/download/下载并安装了STP 我想使用以下代码: Capybara.register_driver :selenium do |app| Capybara::Selenium::Driver.new( app, browser: :safari ) end Capybara.default_driver = :selenium 如何初始化Capybara以使用已实施W3C自动化标准的STP safaridriver?

Capybara找不到id的元素

在我的黄瓜测试中,Capybara无法通过它的id找到 标签。 我在save_and_open_page时能够看到元素。 但我无法用has_css?找到它has_css? 或者find : pry(#)> page.html.scan(/notice_sent/).count => 1 pry(#)> page.html.scan(/id=\”notice_sent\”/).count => 1 pry(#)> page.find(‘#notice_sent’) Capybara::ElementNotFound: Unable to find css “#notice_sent” from /Users/me/.gem/ruby/2.1.7/gems/capybara-2.4.4/lib/capybara/node/finders.rb:41:in ‘block in find’ 我错过了什么?