标签: capybara-webkit

Capybara-webkit引发了Capybara :: Driver :: Webkit :: WebkitInvalidResponseError

我在我的rspec中收到了webkit驱动程序的以下消息:

Capybara::Driver::Webkit::WebkitInvalidResponseError:
Unable to load URL: http://127.0.0.1:44923/posts
Run Code Online (Sandbox Code Playgroud)

几天前它起作用了.问题在于save_page方法.可能有什么不对?

ruby ruby-on-rails acceptance-testing capybara capybara-webkit

5
推荐指数
1
解决办法
3375
查看次数

在使用Capybara完成AJAX请求之前测试加载消息内容

我看到很多关于Capybara的问题和答案在测试内容之前没有等待AJAX​​请求完成,但我需要做相反的事情:我想在AJAX请求完成之前测试加载消息是否存在.

在RSpec中使用Capybara完成AJAX请求之前,我将如何检查内容?

谢谢!

ajax jquery rspec capybara capybara-webkit

5
推荐指数
1
解决办法
497
查看次数

Capybara-webkit抛出无法找到变量:$

我正在尝试使用Capybara -webkit填充wysihmlt5 textarea (不确定是否有其他方法):

Capybara.default_driver = :webkit
page.execute_script %Q{ $('#wysihtml5-textarea').data("wysihtml5").editor.setValue('Lorem ipsum') }
Run Code Online (Sandbox Code Playgroud)

但我得到了错误:

undefined|0|ReferenceError: Can't find variable: $
FQFont::setPixelSize: Pixel size <= 0 (0)

Failure/Error: page.execute_script %Q{ $('#wysihtml5-textarea').data("wysihtml5").editor.setValue('Lorem ipsum') }
     Capybara::Driver::Webkit::WebkitInvalidResponseError:
       Javascript failed to execute
Run Code Online (Sandbox Code Playgroud)

可能是什么问题呢?

ruby-on-rails capybara-webkit wysihtml5

5
推荐指数
1
解决办法
894
查看次数

当使用capybara-webkit和一个使用async = true加载外部脚本的页面时,Rspec会定期挂起

我正在使用一个使用uservoice的应用程序.uservoice片段

  var uv = document.createElement('script');
  uv.type = 'text/javascript';
  uv.async = true;
  uv.src = ...; // external call to uservoice to fetch js
  var s = document.getElementsByTagName('script')[0];
  ...
Run Code Online (Sandbox Code Playgroud)

这个javascript加载在所有页面上.运行时rake spec运行会定期挂起.当我删除uservoice片段时,所有测试都顺利运行.我已经尝试过设置Capybara.javascript_driver = :webkit_debug,我看不到uservoice的响应.当我设置时,page.driver.browser.timeout我可以看到来自uservoice的0响应,并且规格将因超时错误而失败.

其他人遇到这个问题?

javascript rspec hang capybara capybara-webkit

5
推荐指数
1
解决办法
689
查看次数

无法在Debian上安装Capybara-Webkit

我目前正在尝试在rails 3.2 app上安装Capybara-Webkit.每当我尝试安装gem时,我都会得到以下输出.我在Debian上不稳定.

ERROR:  Error installing capybara-webkit:
ERROR: Failed to build gem native extension.

    /home/james/.rvm/rubies/ruby-1.9.3-p392/bin/ruby extconf.rb
qmake: could not find a Qt installation of ''
Command 'qmake -spec linux-g++' failed


Gem files will remain installed in /home/james/.rvm/gems/ruby-1.9.3-p392@ho/gems/capybara-webkit-1.0.0 for inspection.
Results logged to /home/james/.rvm/gems/ruby-1.9.3-p392@ho/gems/capybara-webkit-1.0.0/./gem_make.out
Run Code Online (Sandbox Code Playgroud)

我已经安装了libqtwebkit-devapt,以及qtcreator.我仍然得到这些错误,我的智慧结束了.

还有其他人用debian遇到过这个问题吗?这是漫长的一天,所以我可能会错过一些信息.如果我能提供更多信息,请告诉我.

debian qt ruby-on-rails capybara capybara-webkit

5
推荐指数
2
解决办法
2424
查看次数

Capybara:webkit 和 selenium 找不到 url,racktest 有效

多域应用程序。本地使用 POW 服务器。黄瓜测试

在我设置 app_host 的步骤之一(子域属于帐户并每次都创建):

def set_current_subdomain(subdomain)
  Capybara.app_host = "http://#{subdomain}.example.com:#{Capybara.server_port}"
end
Run Code Online (Sandbox Code Playgroud)

在黄瓜设置中:

Capybara.run_server = true 
Capybara.server_port = 8200
Capybara.javascript_driver = :selenium #default driver when you using @javascript tag
Capybara.app = Rack::ShowExceptions.new(MyApp::Application)
Capybara.default_driver = :rack_test
Run Code Online (Sandbox Code Playgroud)

步骤示例

visit(new_user_session_url(subdomain: @account.subdomain, port: Capybara.server_port))
Run Code Online (Sandbox Code Playgroud)

黄瓜测试通过 :rack_test 通过,但通过 :webkit 或 :selenium 失败

Unable to load URL: http://veumbogan8d11d7feca.example.com:8200/signin because of error loading http://veumbogan8d11d7feca.example.com:8200/signin: Unknown error (Capybara::Webkit::InvalidResponseError)
Run Code Online (Sandbox Code Playgroud)

webkit_debug 输出:

Finished "EnableLogging" with response "Success()" 
Wrote response true "" 
Received "Visit" 
Started "Visit" 
Load started 
"Visit" started page …
Run Code Online (Sandbox Code Playgroud)

selenium capybara ruby-on-rails-3 capybara-webkit

5
推荐指数
0
解决办法
337
查看次数

取消选中check_box只能使用rspec/capybara测试

我有一个嵌套的表单,有4个复选框.目前,一切都在浏览器中工作,但我无法获取capybara测试取消选中复选框并保存.

使用Rails 4.2.2和最新版本的capaybara-webkit和rspec

settings.html.erb

  <%= f.fields_for :preferences do |f| %>
    <div class="email-notifications-holder">
      <div class="email-holder">
        <%= f.label :new_match, "Getting a new match each week" %>
        <%= f.check_box :new_match, class: "checkbox new_match_email" %>
      </div>
      <div class="email-holder">
        <%= f.label :match_reminder, "New matches Thursday reminder", class: "match_reminder_email" %>
        <%= f.check_box :match_reminder, default: true, class: "checkbox"   %>
      </div>
      <div class="email-holder">
        <%= f.label :accepted_match, "A Glassbreakers accepted a match", class: "accepted_match_email" %>
        <%= f.check_box :accepted_match, default: true, class: "checkbox"   %>
      </div>
      <div class="email-holder">
        <%= f.label :new_message, …
Run Code Online (Sandbox Code Playgroud)

checkbox rspec ruby-on-rails capybara-webkit

5
推荐指数
1
解决办法
875
查看次数

单个测试的 Capybara 配置

我试图

describe "test", :js => true do
 it "test" do

  Capybara.default_max_wait_time = 3
  Capybara::Webkit.configure do |config|
   config.allow_unknown_urls
  end

  my test
 end
 it "test2" do
  ...
 end
end
Run Code Online (Sandbox Code Playgroud)

替换我在 spec_helper 中的水豚配置仅用于单个测试,但我收到错误“所有配置必须在驱动程序启动之前进行”。

这是我的spec_helper

   Capybara.run_server = false
   Capybara.default_max_wait_time = 1
   Capybara.javascript_driver = :webkit_with_qt_plugin_messages_suppressed

   Capybara::Webkit.configure do |config|
    config.block_unknown_urls
   end

   RSpec.configure do |config|
    config.include Capybara::DSL
   end
Run Code Online (Sandbox Code Playgroud)

有办法做到吗?

ruby rspec ruby-on-rails capybara capybara-webkit

5
推荐指数
1
解决办法
1347
查看次数

ActionView :: Template ::错误:"{{2 + 2}}"处的意外令牌

我在将JS测试集成到rails/angular应用程序时遇到了麻烦.特别是,我的测试设置在这个html文件中的{{handlebars}}的第8次和最后一次出现时很窒息,我无法弄清楚这种情况有什么特别之处.

问题错误来自_form.html.erb的第784 :

<textarea class="figures_json col-lg-11 col-md-10 col-xs-9" readonly="readonly" name="dance[figures_json]" id="dance_figures_json">
{{2+2}}</textarea>
Run Code Online (Sandbox Code Playgroud)

错误是这样的:

dm@red:~/contra$ rspec ./spec/features/dances/create_spec.rb:7 
Run options: include {:locations=>{"./spec/features/dances/create_spec.rb"=>[7]}}
F

Failures:

  1) Creating dances creates a new dance with non-javascript data
     Failure/Error: JSON.parse figures_json

     ActionView::Template::Error:
       784: unexpected token at '{{2+2}}'
     # ./app/models/dance.rb:10:in `figures'
     # ./app/views/dances/_bodyshow.html.erb:6:in `_app_views_dances__bodyshow_html_erb__2235413439078114529_46217560'
     # /home/dm/.rvm/gems/ruby-2.3.0/gems/actionview-4.2.3/lib/action_view/template.rb:145:in `block in render'
     # /home/dm/.rvm/gems/ruby-2.3.0/gems/activesupport-4.2.3/lib/active_support/notifications.rb:166:in `instrument'
     # /home/dm/.rvm/gems/ruby-2.3.0/gems/actionview-4.2.3/lib/action_view/template.rb:333:in `instrument'
     # /home/dm/.rvm/gems/ruby-2.3.0/gems/actionview-4.2.3/lib/action_view/template.rb:143:in `render'
     # /home/dm/.rvm/gems/ruby-2.3.0/gems/actionview-4.2.3/lib/action_view/renderer/partial_renderer.rb:339:in `render_partial'
     # /home/dm/.rvm/gems/ruby-2.3.0/gems/actionview-4.2.3/lib/action_view/renderer/partial_renderer.rb:310:in `block in render'
     # /home/dm/.rvm/gems/ruby-2.3.0/gems/actionview-4.2.3/lib/action_view/renderer/abstract_renderer.rb:39:in `block in instrument'
     # /home/dm/.rvm/gems/ruby-2.3.0/gems/activesupport-4.2.3/lib/active_support/notifications.rb:164:in `block …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails phantomjs capybara-webkit angularjs

5
推荐指数
1
解决办法
493
查看次数

Capybara 无法找到带有文本的隐藏元素

在我的应用程序中,我有一个页面会弹出一个模式,该页面将更新其中的一些内容并在不确定的时间后自行关闭(并变得不可见)。在我的规范中,我试图等到模式解除。我的策略是让 Capybara 等待模态上的内容变得不可见

expect(page).to have_css('.hidden-element', visible: :hidden, text: 'Hidden Content')
Run Code Online (Sandbox Code Playgroud)

但是,看起来 Capybara 将无法获取隐藏元素的文本,并且我收到错误消息:

expected to find css ".hidden-element" with text "Hidden Content" but there were no matches. Also found "", which matched the selector but not all filters.
Run Code Online (Sandbox Code Playgroud)

如果我做:allor false,它会通过,但这不是我想要的:

expected to find css ".hidden-element" with text "Hidden Content" but there were no matches. Also found "", which matched the selector but not all filters.
Run Code Online (Sandbox Code Playgroud)

鉴于我无法更改我的应用程序,我想知道为什么这不起作用,或者在这种情况下实现这一目标的最佳方法是什么。谢谢!

我正在使用 RSpec、Capybara、Capybara-webkit。

rspec ruby-on-rails capybara capybara-webkit

5
推荐指数
1
解决办法
4537
查看次数