处理Selenium和测试的最普遍接受的方法似乎是避免使用事务固定装置,然后在测试/场景之间使用database_cleaner之类的东西。我最近遇到了以下article建议执行以下操作:spec_helper.rbclassActiveRecord::Basemattr_accessor:shared_connection@@shared_connection=nildefself.connection@@shared_connection||retrieve_connectionendend#Forcesallthreadstosharethesameconnection.This
我需要在Rspec/capybara请求规范中stubcurrent_user方法的响应。该方法在ApplicationController中定义并使用helper_method。该方法应该只返回一个用户ID。在测试中,我希望此方法每次都返回相同的用户ID。或者,我可以通过在规范中设置session[:user_id]来解决我的问题(这是current_user返回的内容)...但这似乎不是要么工作。这两种可能吗?编辑:这是我得到的(它不工作。它只是运行正常的current_user方法)。require'spec_helper'describe"Login"dobefore(:eac
对于HTMLTue4Sep2012Wed5Sep2012Thu6Sep2012我有以下CapybaraRuby代码:select"20120905",:from=>"date"但是这个错误是:cannotselectoption,nooptionwithtext'20120905'inselectbox'date'(Capybara::ElementNotFound)但是,如果我这样做select"Wed5Sep2012",:from=>"date"没关系。是否可以通过Value而不是Text在Capybara中选择一个选项?谢谢 最佳答案
加载页面后,我有代码运行并根据xhr返回的数据隐藏和显示各种项目。我的集成测试看起来像这样:it"shouldnotshowtheblah"dopage.find('#blah').visible?.shouldbe_trueend当我手动转到此测试运行的上下文中的页面时,#blah不如我所料可见。我怀疑Capybara正在查看页面的初始状态(在本例中是不可见的),评估DOM的状态并在JS运行之前测试失败。是的,我在包含的describeblock上设置了:js=>true:)任何想法将不胜感激!我希望我不必在这里故意延迟,这感觉不稳定并且会减慢速度。 最佳
我正在使用许多jQuery插件,它们通常会创建没有id或其他标识属性的DOM元素,并且让它们进入Capybara(例如单击)的唯一方法是让它们的邻居(它的另一个子元素)先祖)先。但是我没有找到任何地方,Capybara是否支持这样的事情例如:find('#some_button').parent.fill_in"Name:",:with=>name? 最佳答案 我真的发现jamuraa的回答很有帮助,但在我的情况下,寻求完整的xpath给了我一个字符串的噩梦,所以我很高兴地利用了在Capybara中连接find的能力,允许我混合cs
我是ruby的新手,但在尝试安装capybara以在我的系统上运行测试时,我收到以下错误。我正在运行OSXmy_app$geminstallcapybara-webkitBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingcapybara-webkit:ERROR:Failedtobuildgemnativeextension./Users/joe/.rvm/rubies/ruby-1.9.2-p290/bin/rubyextconf.rbGemfileswillremaininstalledin/
我无法让capybara使用rspec。它给了我这个错误:undefinedmethod`visit'for#我知道有很多关于此的帖子,但没有一个解决方案适合我。其中大部分涉及不在/spec/features中的规范-我的在其中。首先是错误:$bundleexecrspecspecFFailures:1)securitysignsusersinFailure/Error:visit"/sessions/new"NoMethodError:undefinedmethod`visit'for##./spec/features/security_spec.rb:4:in`(root)'Fin
我在HTML中有以下两个元素BerlinBerlinGermany我正在尝试使用以下Capybara方法查找元素find("a",:text=>"berlin")上面将返回两个元素,因为它们都包含文本berlin。有没有办法在Capybara中精确匹配文本? 最佳答案 使用正则表达式而不是字符串作为:text键的值:find("a",:text=>/\ABerlin\z/)查看方法的“选项哈希”部分:Capybara::Node::Finders#alldocumentation.PS:文本匹配是区分大小写的。您的示例代码实际上引发
关于如何修复有什么建议吗?geminstallcapybara-webkit-v'0.11.0'Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingcapybara-webkit:ERROR:Failedtobuildgemnativeextension./home/durrantm/.rvm/rubies/ruby-1.9.3-p194/bin/rubyextconf.rbsh:qmake:notfoundGemfileswillremaininstalledin/home/durrantm/.rvm
我正在尝试使用Capybara(2.1.0)从下拉菜单中选择一个项目。我想按数字选择(意思是选择第二个、第三个等选项)。我疯狂地用谷歌搜索了各种各样的东西,但没有运气。我能够通过使用以下值来选择它:find("option[value='4c430d62-f1ba-474f-8e8a-4452c55ea0a8']").click但我不想使用该方法b/c值会发生变化,这会使我的测试变得脆弱。下拉菜单的HTML是:Choose... Institution1 Institution/test我也试过这个:option=find(:xpath,"//*[@id='orga