问题标签 [poltergeist]

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.

0 投票
1 回答
598 浏览

rspec - Datatables.net 和 rspec,测试完成处理

我正在使用 capybara 和 phantomjs (poltergeist)。似乎使用该驱动程序 capybara 并不总是等到 ajax 处理完成,所以我随机获得红色规格。有什么方法可以在 rspec 中测试数据表是否已完成加载记录?

0 投票
1 回答
1465 浏览

cucumber - 使用 javascript 设置 cookie 在 Poltergeist 和/或 PhantomJS 中不起作用

我有一个设置 cookie 的网页document.cookie = value,它在服务器上运行时可以完美运行。

但是,在我的黄瓜测试中(使用 Poltergeist/PhantomJS),cookie 不会从一页持续到下一页。

测试流程为:

  1. 页面 A 打开
  2. 用户点击一个按钮,触发 JS 设置 cookie
  3. 用户点击页面 B 的链接
  4. 页面 B 有一个反映 cookie 值的组件

在针对正在运行的服务器的真实浏览器中,这很好。

但是在 cucumber 中,第 4 步的显示显示它看到的是一个空白 cookie。

有谁知道我该如何解决或调查这个问题?

0 投票
1 回答
263 浏览

javascript - 这只水豚会测试片状吗?

在使用 capybara-webkit 或 poltergeist 测试 JavaScript 行为时,我经常发现(或者不幸的是,编写)看起来像这样的测试

...选中复选框会发出一些 AJAX 请求,该请求会保存允许在快速重新加载后对其进行检查的任何状态。

该测试似乎肯定会失败,因为如果 AJAX 请求在第二次visit '/somewhere'发生时未完成,它将加载处于错误状态的复选框。

幸运的是,在这个页面上还有一个微调器在复选框请求完成时旋转,所以我可以像这样修改测试

不过,我仍然有点偏执:如果page.check线路运行但没有像线路active之前那样设置微调器page.should have_css,那么该线路甚至会在请求开始之前成功。

鉴于复选框触发的 JavaScript 设置了active类,我能保证这个测试永远不会失败吗?

0 投票
5 回答
6797 浏览

ruby-on-rails - Capybara、capybara-webkit及自定义文件上传表单

我使用以下 html 堆栈创建了自定义上传表单:

文件字段通过具有display: none属性的 css 隐藏。因此,当她单击标签(自定义样式)时,用户会调用文件附加对话框。

在我的功能测试中,由于输入字段被隐藏,我无法附加文件。我尝试了一些可能的解决方案,但它们都不起作用:

或者

还有许多其他人。一直以来,我都会遇到 Failed to click element at unknown position 错误。一旦我删除了与输入字段重叠的标签,使其可见并运行我的规范,一切都通过了。所以这里的问题是:

  1. 输入文件字段具有display: none属性(因此无法找到)
  2. 有一个标签与隐藏文件字段重叠(可能)

有没有办法让 Capybara 和 Capybara-webkit 驱动程序以某种理智的方式处理这种微妙的情况?

0 投票
0 回答
1921 浏览

ruby - Capybara 与 PhantomJS / Poltergeist:从下拉列表中选择值不会触发 Ajax 调用

出于非商业目的,我正在尝试构建一个刮板。我以前使用过 PhantomJS,它通常就像一个魅力。但是,我偶然发现了以下问题:

我想做的事:

不幸的是,我可以选择我想要选择的选项,但之后没有任何反应。我创建了一个迷你脚本来演示这种行为:

如果对比之前和之后的截图,你会看到下拉菜单的数量发生了变化,但表格的内容没有变化。此外,下拉菜单没有显示在正确的位置,而是显示在屏幕截图的左上角。

如果我使用 Selenium 作为我的默认驱动程序,那么它可以工作,但我宁愿使用 PhantomJS,因为根据我的经验,它要快得多。

如何让 PhantomJS 触发 Ajax 调用?

我使用 PhantomJS 1.9.1、Capybara 2.1.0 和 Poltergeist 1.3.0

0 投票
1 回答
502 浏览

ruby-on-rails-3.2 - Rails:Poltergeist 似乎没有找到一个完全正常工作的 phantomjs

我创建了一个小型 Rails 应用程序,它使用 poltergeist 和 Capybara 定期检查我的一个网站的内容。在我的 Mac 上的开发中一切都很好。但是当我在我的生产服务器上测试它时,我得到了以下服务器。

Capybara::Poltergeist::PhantomJSFailed(PhantomJS 返回非零退出状态 127。确保 phantomjs 在您的系统上成功运行。您可以通过运行phantomjs应该为您提供 Javascript REPL 的命令来测试它。):

Phantomjs 工作。我已经从命令行对其进行了测试。更让我困惑的是,当我从生产服务器上的 rails 控制台运行我的方法时,它也可以工作。

任何想法?

0 投票
1 回答
319 浏览

ruby - Poltergeist and Capybara can't open page by its url, returns about_blank

I am using Capybara 1.1.4 with poltergeist as PhantomJS driver. When I run this code on ruby:

I get 'about_blank'. It happens when I open specific dev environment. With other sites' urls it works great. Maybe someone knows how to fix it?

0 投票
2 回答
4577 浏览

ruby-on-rails-3 - 使用 Poltergeist 运行 Capybara 时如何获取当前主机名和端口?

我有一个测试程序,它通过向 Rails 服务器发送数据块来模拟用户的 iOS 设备。该程序在测试之外运行良好。在测试中,由于找不到服务器,程序立即超时。

我的配置,在 env.rb 中:

在测试中,我尝试过类似的东西

等等,但这些都是空白的。正在做:

放 Capybara.current_session

产生一个内存地址,所以我知道当前会话正在工作。

这是在 gemfile 中设置的 Capybara :

我已经看到了几个基于此的问题,但他们的答案对我不起作用。具体来说,Capybara 似乎没有像我指定的那样设置当前主机或 url,它实际上也不允许我查看当前会话的内容。那么我该如何解决这个问题并指定一个特定的端口和 url?

0 投票
1 回答
4077 浏览

ruby-on-rails - 使用 rspec、capybara 和 poltergeist 的测试返回空 html 和空屏幕截图

所以我已经为此苦苦挣扎了很长一段时间,我似乎无法弄清楚我们出了什么问题,也找不到太多可能导致这个问题的原因。

我对 Ruby 和 Rails 以及测试/行为驱动的开发相对较新,并且正在尝试使用 Rspec 和 Capybara 通过 Poltergeist 使用 PhantomJS 编写一些验收(浏览器)测试。我相信有些人也称此为集成测试(他们可能是从某种角度来看),但这是另一回事。

我有一个非常简单的功能,我无法做我想做的事:

所以。很简单,对。它应该只是/login将 HTML 内容扔给我,我也想使用 来查看页面save_and_open_page,并且我希望它截取屏幕截图。为了让测试失败,我添加了一个简单should have_selector的方法,试图获得更多反馈。

my 的相关内容feature_helper.rb

还有我的spec_helper.rb

这一切都相当简单。

现在,在我的控制台中,我看到以下内容:

此外,屏幕截图只是一个白色的空白页面。当我跟踪我的log/test.log文件时,我没有看到正在执行请求。我尝试将方法更改visitget,这将发出请求,但不会更改任何结果。

我已经完全没有想到这可能是什么,这相当令人沮丧:(

然后是关于版本的最终信息:

  • rspec 2.10.0
  • 水豚 1.1.4
  • 闹鬼 1.0.3
  • 红宝石 1.8.7
  • 导轨 3.2.13

不幸的是,我们仍处于 ruby​​ 1.8.7,但正在努力提高该版本。不过,我认为这不应该影响测试。

任何帮助将不胜感激!

0 投票
1 回答
2181 浏览

ruby-on-rails-3 - click_on 和 click_link 的区别?

我正在编写请求规范,我正在使用 poltergeist-1.0.2 和 capybara-1.1.2。我有以下代码:

登录有闪烁消息,向用户显示他已成功登录。当我使用 click_link 时,规范失败,因为 Capybara 找不到元素“虚拟终端”,但是当我使用 click_on 时,一切都通过了。“虚拟终端”不是按钮,而是链接。

click_on 和 click_link 有什么区别。