标签: capybara-webkit

构建capybara-webkit时出错

我想在ubuntu 12.04上安装capybara-webkit,但是我收到了这个错误:

$ gem install capybara-webkit -v '1.0.0'
Building native extensions.  This could take a while...
ERROR:  Error installing capybara-webkit:
    ERROR: Failed to build gem native extension.

    /home/samir/.rvm/rubies/ruby-2.1.0/bin/ruby extconf.rb
Command 'qmake -spec linux-g++' not available

Makefile not found

Gem files will remain installed in /home/samir/.rvm/gems/ruby-2.1.0@dcaclab/gems/capybara-webkit-1.0.0 for inspection.
Results logged to /home/samir/.rvm/gems/ruby-2.1.0@dcaclab/extensions/x86-linux/2.1.0/capybara-webkit-1.0.0/gem_make.out
Run Code Online (Sandbox Code Playgroud)

任何的想法?

capybara-webkit ubuntu-12.04

8
推荐指数
1
解决办法
6894
查看次数

检查为什么ruby脚本挂起

有时我的规格可以挂起,我必须杀死相应的ruby过程.当我运行用capybara和webkit驱动程序编写的集成规范时,这很常见.

是否可以检查给定的红宝石过程并查看它挂在哪里?哪种方法,操作,文件,行号等

ruby debugging rspec capybara capybara-webkit

7
推荐指数
2
解决办法
1924
查看次数

在Capybara-Webkit中显示@ font-face字体

当我使用capybara-webkit测试我的网站并截取屏幕截图时,CSS中的@ font-face声明将被忽略.

这特别糟糕,因为我使用FontAwesome,因此在真实浏览器中页面的显示方式会有很大差异.

如何重现:https://gist.github.com/anonymous/4948827

输出:http://i.imgur.com/5lsrleY.jpg

有没有什么办法解决这一问题?

ruby font-face capybara capybara-webkit

7
推荐指数
1
解决办法
604
查看次数

Href链接点击使用capybara

如何使用capybara点击链接.我需要点击毕业链接

<a href="/arts?Occasion=Graduation&amp;top_menu_item_title=+-+Graduation">Graduation</a>
Run Code Online (Sandbox Code Playgroud)

我使用了以下代码.但显示错误消息未定义方法 click

 page.find(:link,"Graduation").click
Run Code Online (Sandbox Code Playgroud)

也用过Xpath

page.find(:xpath, "//a[@href='/arts?Occasion=Graduation']").click
Run Code Online (Sandbox Code Playgroud)

它也不起作用

但我的问题是我的页面包含毕业的多个链接.

所以用 page.all(:link,"Graduation")returns Ambiguous match, found 2 elements matching link "Graduation"

xpath cucumber capybara capybara-webkit

7
推荐指数
1
解决办法
8237
查看次数

用capybara-webkit检测到死锁

我试图通过这个规范:

scenario "Edit a service", js: true do
  service = create_service_for(provider, title: "First service")
  fill_edit_service_form(service)
  expect(page).to have_css('#price', text: '10,00 $')
end
Run Code Online (Sandbox Code Playgroud)

这是使用水豚的标准导轨规格.我使用capybara-webkit用于javascript的所有场景.当我试图传递它时,有时候它会起作用,有时它标记的数据库中有一条丢失的记录,有时我有这个错误:

Run options: include {:locations=>{"./spec/acceptances/provider_services_spec.rb"=>[31]}}
[K  1) Provider Services Edit a service
     Failure/Error: Unable to find matching line from backtrace
     ActiveRecord::StatementInvalid:
       PG::TRDeadlockDetected: ERROR:  deadlock detected
       DETAIL:  Process 24164 waits for AccessExclusiveLock on relation 3446991 of database 3446538; blocked by process 24184.
       Process 24184 waits for AccessShareLock on relation 3446902 of database 3446538; blocked by process 24164.
       HINT:  See server …
Run Code Online (Sandbox Code Playgroud)

ruby rspec ruby-on-rails capybara capybara-webkit

7
推荐指数
1
解决办法
3960
查看次数

为什么在挂钩后添加"sleep 1"会导致此Rspec/Capybara测试通过?

我使用的是rails 4.0.5,rspec 2.14.1,capybara 2.2.1,capybara-webkit 1.1.0和database_cleaner 1.2.0.我通过以下功能测试看到一些奇怪的行为(模拟用户在帖子上查看评论,将鼠标悬停在图标上以显示菜单,然后单击菜单项以删除评论):

let(:user){create(:user)}
let(:post){create(:post, author: user)}
let!(:comment){create(:comment, post: post, author: user)}

...

it "can delete a comment" do
  assert(page.has_css? "#comment-#{comment.id}")
  find("#comment-#{comment.id}-controls").trigger(:mouseover)
  find("#comment-#{comment.id} .comment-delete a").click
  assert(page.has_no_css? "#comment-#{comment.id}")
end
Run Code Online (Sandbox Code Playgroud)

这个测试大约80%的时间都失败了,总是由于从数据库中检索到一些记录nil- 我得到的NoMethodError: undefined method X for nil:NilClass,对于X的各种值.有时nil是被删除的注释,有时它是注释附加的帖子到,有时它是评论/帖子的作者.

如果我添加sleep 1到测试结束,它会通过:

it "can delete its own comment" do
  assert(page.has_css? "#comment-#{comment.id}")
  find("#comment-#{comment.id}-controls").trigger(:mouseover)
  find("#comment-#{comment.id} .comment-delete a").click
  assert(page.has_no_css? "#comment-#{comment.id}")
  sleep 1
end
Run Code Online (Sandbox Code Playgroud)

如果我放入sleep 1一个after区块,它也会通过.

知道为什么我得到这些NoMethodErrors,和/或为什么测试通过,如果我在完成所有工作后让它睡了一秒钟?

ruby rspec ruby-on-rails capybara capybara-webkit

7
推荐指数
1
解决办法
2037
查看次数

capybara-webkit与selenium-webdriver的比较

我想为我的rails应用程序编写测试用例.我已经在Rails内置框架Minitest中编写了很多测试用例.现在我想测试我的网络应用程序的javascript功能.我遇到了这两个工具

1:Selenium网络驱动程序

2:Capybara-webkit

我很困惑使用哪一个.我知道这两个工具的优点和缺点很少

  1. Capybara webkit是无头的,而selenium web-driver打开浏览器.
  2. 水豚比硒快.
  3. Capybara无法打开任何其他应用程序,而selenium可以与Facebook和LinkedIn等第三方应用程序进行交互

谁能告诉我这两种测试工具的比较?

capybara-webkit selenium-webdriver

7
推荐指数
1
解决办法
2593
查看次数

未使用Rails测试环境中的预编译资产

我正在使用Rails 5.1.1,对于我们想要的rspec功能测试,我们希望在运行所有功能测试之前使用预编译资产.(主要原因是因为capybara-webkit不支持javascript es6功能)

使用RAILS_ENV=test rake assets:precompilecapybara-webkit 成功预编译的资产似乎不使用预编译资产.

config/environment/test.rb看起来像这样

config.assets.prefix = "/assets_test"
config.assets.compile = true
config.serve_static_assets = true
config.assets.js_compressor = Uglifier.new(
  harmony: true #es6 support
)
Run Code Online (Sandbox Code Playgroud)

我需要添加什么来测试才能使用预编译资产?

ruby-on-rails asset-pipeline capybara-webkit

7
推荐指数
1
解决办法
1835
查看次数

使用capybara-webkit填写编辑器textarea

我正在我的页面上使用降价编辑器,我正在尝试定位,并使用capybara-webkit填写,但没有任何运气.

我的模板看起来像这样

<%= simple_form_for form, url: url, method: :put do |f| %>
  <%= f.input :notes, as: :text %>
  <%= f.button :submit, class: 'fluid' %>
<% end %>

<!-- https://github.com/lepture/editor -->
<link rel="stylesheet" href="//cdn.jsdelivr.net/editor/0.1.0/editor.css">
<script src="//cdn.jsdelivr.net/editor/0.1.0/editor.js"></script>
<script src="//cdn.jsdelivr.net/editor/0.1.0/marked.js"></script>

<script !src="">
  (function () {
    var editor = new Editor();
    editor.render();
  })()
</script>
Run Code Online (Sandbox Code Playgroud)

渲染的html(包括执行的编辑器javascript)看起来像这样(通过capybara-webkit调试工具)

<form novalidate="novalidate" class="simple_form simple_form ui form segment new_steps_update" id="new_steps_update" action="/presentations/1/who" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="?"><input type="hidden" name="_method" value="put">
  <div class="field text optional steps_update_notes"><label class="text optional" for="steps_update_notes">Notes</label><textarea class="text …
Run Code Online (Sandbox Code Playgroud)

editor capybara capybara-webkit

6
推荐指数
1
解决办法
1149
查看次数

Mac OS X (Big Sur) capybara-webkit 安装问题

我在安装 capybara-webkit gem 时遇到问题。这是我在 gemfile 中的测试组的一部分:

 group :test do
  gem 'capybara-webkit'
end
Run Code Online (Sandbox Code Playgroud)

当我在控制台上写“捆绑”时 - 它给了我

`"An error occurred while installing capybara-webkit (1.15.1), and Bundler cannot continue. Make sure that `gem install capybara-webkit -v '1.15.1' --source 'https://rubygems.org/'` succeeds before bundling."`
Run Code Online (Sandbox Code Playgroud)

所以我发现我需要通过自制软件安装qt。所以我去了 homebrew-core,写了 'brew update',而不是 'cd $( brew --prefix )/Homebrew/Library/Taps/homebrew/homebrew-core' ;'git 结帐 9ba3d6ef8891e5c15dbdc9333f857b13711d4e97 公式/qt@5.5.rb'; 和'brew install qt@5.5'。然后它给了我'错误:qt@5.5:未知版本:mountain_lion'。我发现问题可能出现在“Formula/qt@5.5.rb”中,它有字符串“depends_on :macos => :mountain_lion”。所以我评论了它,然后当我写 'brew install qt@5.5' 时 - 它给了我另一个错误:

 "Error: Failed to download resource "qt@5.5_bottle_manifest""
Run Code Online (Sandbox Code Playgroud)

可能是什么问题?

macos qt ruby-on-rails capybara-webkit qt5

6
推荐指数
1
解决办法
270
查看次数