草庐IT

Capybara

全部标签

ruby - 升级到 Capybara 2.0 后如何点击项目列表中的第一个链接?

在这种情况下如何点击第一个链接:AgreeAgreewithin".item"dofirst(:link,"Agree").clickend我得到这个错误:Capybara::Ambiguous:Ambiguousmatch,found2elementsmatchingcss".item"如果没有within我会得到这个错误:Failure/Error:first(:link,"Agree").clickNoMethodError:undefinedmethod`click'fornil:NilClass 最佳答案 你可以只使用:f

ruby-on-rails - 如何检查 capybara 中的复选框?

我正在使用Rspec和Capybara。如何编写检查复选框的步骤?我已尝试按值进行check,但找不到我的checkbox。我不确定该怎么做,因为我实际上有相同的ID,但值不同代码如下: 最佳答案 我发现以下对我有用:#Checkfind(:css,"#cityID[value='62']").set(true)#Uncheckfind(:css,"#cityID[value='62']").set(false) 关于ruby-on-rails-如何检查capybara中的复选框?,我们

javascript - 从 ERB 切换到 Angular 时,Rails 应用程序中的 AngularJS View 功能测试中断

首先,我有一个工作rails“显示”页面显示项目名称和属于该项目的条目。当使用Angular$scope显示项目名称并使用ERB中的block显示条目时,我的测试通过了。当我用AngularDirective(指令)“ng-repeat”替换条目ERB代码时,仅我的条目测试场景开始失败。有趣的是,该应用程序仍在浏览器中运行。请记住,在我看来,另一个$scope变量过去和现在仍然通过使用几乎相同的测试。工作show.html.erb(在ERB中查看的条目):Thisis{{project.details.name}}Entries打破show.html.erb(在Angular中查看的条

javascript - 我如何在 Capybara 中测试页面是否*未*重新加载(JavaScript onClick 拦截有效)?

我正在使用Capybara、Cucumber和Poltergeist。我正在测试附加到表单提交按钮的JavaScript函数,该函数旨在捕获提交事件并阻止它(在后台执行AJAX请求)。使用和不使用AJAX,页面最终看起来都一样,但AJAX方法要快得多,并且不会中断浏览体验等。我可以做些什么来测试表单确实没有提交,并且更改是动态AJAX调用而不是重新加载的结果? 最佳答案 @jules答案的修改版本:describe"Mypage",:jsdoit"reloadswhenitshould"dovisit"/"expect_page_t

javascript - 巫术/ capybara : Cannot log in with :js => true

我使用capybara已经有一段时间了,但我对巫术还是个新手。我有一个非常奇怪的问题,如果我在没有Capybara的:js=>true功能的情况下运行规范,我可以正常登录,但如果我尝试在规范上指定:js=>true,则无法找到用户名/密码。这是身份验证宏:moduleAuthenticationMacrosdefsign_inuser=FactoryGirl.create(:user)user.activate!visitnew_sessions_pathfill_in'EmailAddress',:with=>user.emailfill_in'Password',:with=>'f

javascript - 如何在 Capybara 验收测试中 stub JavaScript 延迟?

MyRails应用程序包含一个JavaScript模式,它会在用户单击链接后45秒弹出。结果,我的验收测试失败了。我最初尝试在我的Capybara验收测试中使用Timecopgem来快进时间,但那没有用。然而,当我添加一个sleep(45)时,它确实起作用了。显然,我不能在我的规范中使用sleep(45)3次,但知道什么有效是很好的,这样我可以用更快的方法更接近它。我从实验中得出的结论是,Ruby跟踪时间,Javascript跟踪时间,而Timecop是快进Ruby时间而不是Javascript时间。有没有办法在我的Capybara测试中快进45秒,以便触发我的Javascript事件

javascript - Capybara/Selenium 在 location.reload() 上随机获取一个 Net::ReadTimeout

我正在使用Capybara、selenium-webdrivergem和chromedriver来驱动我的启用javascript的测试。问题是大约50%的构建由于Net::ReadTimeout错误而失败。起初这表现为“找不到元素”错误,但在我将Capybara的默认最长等待时间提高到30秒后,我开始看到超时。我检查了超时发生时的屏幕截图,它停留在我们在使用Javascript函数location.reload()重新加载页面之前简要显示的“成功登录”模式.我在本地运行了测试,有时可以重现,也是随机的。有时它会通过这个模态压缩并重新加载,速度快到你几乎看不到它,而其他时候它会永远挂起

javascript - 为什么 Selenium 找不到动态添加的 DOM 元素?

我用jQuery添加了一个DOM元素(一个链接)。我可以在Firebug中看到该元素,但由于某种原因Selenium找不到它。这是怎么回事?注意:不涉及AJAX,因此几乎立即添加了DOM元素。==编辑==这里有一些代码(使用jQuery)将链接附加到文档的末尾:$element=$("");$element.appendTo($("body"));我正在使用Capybara(带有Selenium)来查找链接并单击它,如下所示:find("#foo").click在我开始使用jQuery向DOM添加元素之前,我对Capybara或Selenium没有任何问题。

javascript - 如何使用 Capybara/Poltergeist 在页面上运行一个函数?

我在...中有一个带有JS函数(通过鼠标单击调用)的页面标签。在我进行测试时,我遇到了.click方法多次无法正常工作的问题。因此我决定简单地手动调用该函数。但是,我在Internet上找不到任何资源可以教您如何执行此操作。我想避免点击链接并简单地调用doSumbit('5').谢谢!JS函数是:functiondoSubmit(infoTypeId){document.forms[1].INFOTYPEID.value=infoTypeId;document.forms[1].action=document.forms[1].action+"#"+infoTypeId;documen

javascript - 使用 capybara 捕获浏览器控制台日志

我需要使用Ruby和Capybara捕获浏览器的控制台日志(类别:信息)。到目前为止,我已经尝试使用driver.manage.logs.get(:browser)或(:client)但是,使用它,结果不是我想要的。它给出了selenium和浏览器之间的交互结果,我可以在其中看到我的javascript语句已发送执行,但结果输出无法被捕获。 最佳答案 使用selenium时日志是否可用取决于您使用Selenium的浏览器。如果您使用的是Firefox,那您就不走运了,因为它不支持日志检索API,但是由于您使用的是Chrome,因此可