草庐IT

Capybara-webkit

全部标签

ruby-on-rails - 未初始化的常量 Capybara

我在使用Capybara在Rails中运行测试时遇到问题。每当我运行它时,它都会告诉我我的spec_helper.rb文件中有一个“未初始化的常量Capybara(NameError)”。我正在学习本教程:http://www.railstutorial.org/book/static_pages#code-capybara_dsl这是我的spec_helper.rbRSpec.configuredo|config|config.include(Capybara::DSL)end我正在尝试运行这个测试static_pages_spec.rbrequire'spec_helper'des

ruby-on-rails - 使用 Rspec 和 Capybara 设置一个新的 RoR 项目

我正在尝试按照thistutorial学习RoR我目前在第3章。如果我逐行学习,本教程效果很好。但是,本教程中使用的命令禁止生成默认测试。当我试图保留它们并可能在我的项目中使用它们时,我总是在某个地方碰壁。你能告诉我我做错了什么吗?$railsnewmyproject$cdmyproject/$echo"gem'rspec'">>Gemfile$echo"gem'rspec-rails'">>Gemfile$echo"gem'capybara'">>Gemfile$bundleinstall$bundle--binstubs$railsgeneraterspec:install$rai

ruby - 使用 Capybara 或类似工具访问所有加载的资源

我正在寻找一种可能性,以便使用headless浏览器轻松访问和列出网页文档开始加载后加载的所有资源:脚本、图像、样式表等。我对文件的url、状态代码和类型等感兴趣。想办法以编程方式访问Network选项卡(开发人员工具)为您提供的信息:有没有人知道Ruby库可以帮助我解决这个问题,或者——甚至更好——是否有办法使用Capybara(–webkit)来实现这个目标?更新似乎Poltergeisthasamethodcallednetwork_traffic这就是我所追求的。不过,还没有时间研究它。我会在完成后报告。 最佳答案 如更新中

ruby - RSpec HaveSelector 在使用 Capybara 时无法正常工作

Capybara的HaveSelector没有按照我期望的方式与RSpecexpect一起工作。我是Capybara和RSpec的新手,所以这很可能是我对RSpec或Capybara的误解,或者它可能是Capybara(版本2.0.2)的缺陷。请帮助我理解我的错误或编写错误报告/功能请求。在我的RSpec中我写道:expect{click('.special-div.submit')}.tohave_css('.submitted')我希望这在功能上等同于click('.special-div.submit')page.shouldhave_css('.submitted')但事实并非

ruby - 使用 Capybara 测试纯 JavaScript 应用程序

我在将Sinatra与Capybara结合使用时遇到了一些问题。我想测试一个纯javascript应用程序。它只是一个由Sinatra提供的普通index.html。require"sinatra"get"/"doFile.read("public/index.html")end例如,我想测试这段代码。$("a.link").click(function(){$(this).replaceWith("NewString");});Clickme!然后测试看起来像这样。describe"requests",js:truedoit"shoulddisplayamessage"dovisit

ruby - 将 JS 文件注入(inject) capybara chrome headless

我的测试中有RSpecwithCapybara和ChromeHeadless。对于某些页面,我加载了其他javascript所依赖的外部JS文件。我想让我的测试独立于外部JS调用,例如当我离线时,它们将无法工作并抛出JS错误。更改生产代码(例如测试环境然后加载或不加载文件或执行脚本)感觉非常难看,所以这不是一个选项。因此,我考虑在每次访问页面时将某种模拟脚本注入(inject)浏览器。问题是,page.evaluate_script或page.execute_script等方法仅在加载页面时运行脚本。此时,生产JS代码已经抛出错误。我四处寻找解决方案,但没有找到让chromeheadl

ruby - Kaminari 和 Capybara 冲突

我觉得capybara的page方法和Kaminari的page方法有点冲突。我是这么猜的,反正错误在这里:Failure/Error:before{sign_in_asuser}ActionView::Template::Error:wrongnumberofarguments(1for0)#./app/models/feed.rb:9:in`microposts'[Restofthebacktrace]代码示例:classFeeddefmicroposts(opts={urgent:false})urgent=opts[:urgent]pMicroposts.where(id:1)

ruby - 有没有其他方法可以触发 capybara ?

我尝试了以下代码:page.find("#{element_name}").trigger(:mouseover)我收到错误:Capybara::NotSupportedByDriverError(Capybara::NotSupportedByDriverError)我正在使用selenium网络驱动程序。根据以下URL触发器未在selenium网络驱动程序中实现:UnabletotriggermouseeventinCapybaratest除了在capybara中使用触发器之外,是否有任何替代方法来执行鼠标悬停元素而不是使用触发器? 最佳答案

ruby - capybara 有_selector吗?等

当我使用Capybara的has_selector时?它会像find()方法那样等待并重试以尝试找到dom节点吗?我在下面的文档中找不到任何有用的信息。我对答案很感兴趣,但我更感兴趣的是如何从ruby​​文档中推断出这些信息(这总是给我导航带来问题)。http://rubydoc.info/github/jnicklas/capybara/master/Capybara/Node/Matchers#has_selector%3F-instance_methodhttp://rubydoc.info/github/jnicklas/capybara/master/Capybara/Nod

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

我想在capybara中做这样的事情:browser.execute_script("arguments[0].setAttribute('value','value')",element)上面的行是在selenium/ruby上运行的,但是将execute_script与capybara一起使用只需要1个参数(脚本),因此我无法定义我希望在其上执行脚本的元素......有什么想法吗? 最佳答案 选项1-直接调用Selenium的execute_script最快的解决方案是绕过CapybaraAPI并直接调用Selenium-Web