问题标签 [capybara-webkit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby - 检查 ruby 脚本挂起的原因
有时我的规范可能会挂起,我必须终止相应的 ruby 进程。当我运行使用 capybara 和 webkit 驱动程序编写的集成规范时,这很常见。
是否可以检查给定的 ruby 进程并查看它挂在哪里?哪个方法、操作、文件、行号等。
rspec - capybara-webkit 不再运行测试
我刚刚更新了 Capybara (0.13.0) 和 Rspec (2.12.0),现在我的 capybara-webkit 测试只工作了大约 1/5 的时间。
“不工作”是指测试的内容根本没有运行。它只是冻结在那个测试上。它似乎没有做任何事情(Ruby 进程只使用 0.1% cpu)。
此外,我的一些js: true
测试似乎 100% 有效。
当我在 Firefox 中运行测试时,一切正常。
其他人有这个问题吗?关于如何调试它的任何想法?
ruby-on-rails - Rspec capybara 规范在通过“rake spec”调用时失败,但在通过“rspec spec”调用时通过
我已经尝试了这些问题的答案:1 , 2。第一个表明它可能是一个缓存问题(并建议运行rake tmp:clear
)。第二个建议强制ENV['RAILS_ENV'] = 'test'
进入,spec_helper.rb
因为 rake 是在“开发”中运行的。我也尝试过完全删除 vcr gem,但这也没有效果。
该评论提供了有关问题可能是由于环境肮脏引起的更多详细信息(因为 rake 在“开发”中开始,但 rspec 在“测试”中运行)。
有问题的规范使用 capybara 和 capybara-webkit。运行时通过,bundle exec rake spec:requests
但在套件中运行时失败 via bundle exec rake
。capybara 看到的 html 在这两种情况下都不同,并且在套件中运行时看不到 element #movie_imdb_id
。
我正在使用 gem 版本rspec (2.11.0)
、capybara (1.1.3)
和capybara-webkit (0.12.1)
.
Rspec 消息:
spec_helper.rb:
规范/请求/imdb_credits_spec.rb:
ajax - 在使用 Capybara 完成 AJAX 请求之前测试加载消息内容
我看到很多关于 Capybara 在测试内容之前不等待 AJAX 请求完成的问题和答案,但我需要做相反的事情:我想在 AJAX 请求完成之前测试是否存在加载消息。
在 RSpec 中使用 Capybara 完成 AJAX 请求之前,我将如何检查显示的内容?
谢谢!
rspec - 为什么我使用 Capybara-webkit 得到空白页面,而不是使用标准(非 JS)驱动程序
在我开始尝试使用 Capybara-Webkit 与依赖于 Javascript 的界面元素进行交互之前,我的 Rspec + Capybara 集成测试运行良好。
当我尝试使用 Capybara-Webkit 时,我在save_and_open_line
下面得到空白页。为什么?
/spec/features/area_spec.rb:
/spec/spec_helper.rb:
当我从中删除Capybara.current_driver = :webkit
(area_spec.rb
但将 Webkit 相关代码保留在 中spec_helper.rb
)时,生成的页面save_and_open_page
不为空,但在 Rspec 命令行中出现以下错误:
最初我尝试添加:js => :true
到 before block ... do
,但 Rspec 一直拒绝我的语法。当我添加:js => true
到it ... do block
要被before ... do
块覆盖的第一个时,我仍然在 处得到一个空白页save_and_open_page
,但是 Rspec 命令行中的错误更改为:
当我在文件Capybara.javascript_driver = :webkit
中向上移动一个级别时,我得到了同样的错误。spec_helper.rb
Rspec.configure do
当我从before ... do
块中剪切每一行并将其粘贴到it ... do block
要覆盖的第一行时,我得到了同样的错误。
当我设置config.use_transactional_fixtures = true
和删除所有与 Webkit 相关的代码时,规范工作,当然 for 除外page.find('#nav_reports').trigger(:mouseover)
,它需要一个 Javascript 驱动程序。
更新:我page.current_path.should == report_path(@report)
在之前插入save_and_open_page
并发现有关 Capybara-Webkit 的某些东西正在阻止我visit report_path(@report)
的工作。(当我不尝试使用 Capybara-Webkit 测试依赖于 Javascript 的界面元素时,它工作正常。)错误代码是:
进一步更新:我发现当我使用 Capybara-Webkit 时,Rspec 很难找到@report
对象,即使我将我的@report = Report.create(...)
语句直接移动到访问之前的行report_path(@report)
。完整的测试日志如下:
ruby-on-rails - 在轨道上使用 rspec-capybara 测试图像标签中图像的实际存在
在我发送的电子邮件中,我包含了一张图片,我想确保它确实加载了一张。所以,在 Mailer View Spec 的风格中,我想要一个 Capybara RSpec Matcher,它告诉我这个图像是否真的被渲染为一个图像(或者是否只有 alt 标签,因为它没有找到它)做你知道有什么选择吗?
cucumber - 在黄瓜中使用相同的浏览器窗口
在我的功能文件中,我有这样的东西:
当黄瓜执行第二个场景时,它会重新执行后台。
我的问题是 - 是否可以告诉 Cucumber 使用与先前场景相同的浏览器会话/状态?这将帮助我的测试节省一些执行时间。
testing - 使用 Capybara webkit 时未找到元素错误,但测试在非无头模式下运行良好
我正在尝试使用 Capybara-webkit 在无头模式下运行一个简单的谷歌搜索测试。
我已将驱动程序设置为 env.rb 文件:
特征文件有一个简单的场景大纲,用于搜索输入并验证结果是否包含预期的输出:
在步骤定义中,访问google页面并在文本框中输入输入并单击搜索按钮。
当我运行这些测试时,我得到了错误:
找不到字段“gbqfq”(Capybara::ElementNotFound)
但是,如果我将驱动程序更改为硒:
然后,测试运行并且所有步骤都通过。
在无头模式下,是否以其他方式找到元素?我的方法错了吗?我无法理解为什么在浏览器模式(打开 firefox 实例)下工作正常时,在无头模式下找不到该元素。
我是这个领域的新手,所以任何帮助都将不胜感激。先感谢您。
ruby-on-rails - 为什么 RSpec/Capybara 不显示错误发生的位置
我正在使用 Capybara 和 webkit 进行测试,但由于某种原因,当测试失败时,它会显示错误,而不是代码中实际发生的位置。
并且在使用save_and_open_page
时只会显示错误,没有关于它发生的位置的信息:
内部服务器错误
#WEBrick/1.3.1 (Ruby/1.9.3/2012-04-20) 在 127.0.0.1:60324 的未定义方法“client_id”
我期望看到的是发生错误的行号和函数:
app/controllers/invoices_controller.rb:30:in `show'
我似乎在 Google 上找不到与此相关的任何内容。我可能使用了不正确的命名法。有人知道如何解决这个问题吗?