问题标签 [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 回答
7520 浏览

jquery - capybara-webkit 无法模拟点击(非链接/按钮)元素

在 rspec 功能场景中,我有:

这似乎不会触发该元素的 click 事件上的 jQuery 处理程序。在调试器中,此调用返回一个空字符串“”。

capybara-webkit 是否应该能够使用触发更新 dom 的 ajax 请求的 jQuery 处理程序来模拟鼠标事件?如果是这样,对这种情况有什么建议吗?我从 selenium-webdriver 切换,因为不支持 capybara #trigger 方法。

并且尝试直接触发jQuery事件会抛出错误:

我的 gemfile 有

我正在使用'edge' capybara-webkit,因为我遇到了一个带有xpath错误的错误(v2.04?)。

尽管我尝试在 spec/spec_helper.rb 中添加机架异常,但我无法获取 javascript 错误的日志:

更新: 我将 capybara-webkit 替换为

在 spec/spec_helper.rb 中:

我从页面(“#my_id”).trigger('click')的控制台中收到这些错误消息:

我试图对 poltergeist gem 权限进行 chmod,但结果相同。

并尝试运行 page.execute_script(%Q($("my_id").trigger('click'))) 给出 jQuery 未定义类型错误:

0 投票
0 回答
296 浏览

cucumber - Intermittent errors running cucumber tests with capybara and poltergeist on jruby

When running cucumber 1.1.9 tests using capybara 2.0.2 and poltergeist 1.1.0 on jruby 1.7.3 I see intermittent errors like the following:

The test will invariably pass when run a second time.

This happens less than 5% of the time, but enough to break CI. These errors are not the typical timing issues causing a page element to not be located; they occur at the start of a scenario before any steps are executed.

This looks to me like some kind of race condition that is causing some classes/modules to be loaded in the wrong order, but I have not looked deeply into it yet. I wanted to ask here to see if this was a known issue with some sort of solution/work around.

0 投票
1 回答
1277 浏览

ruby-on-rails - 录像带之间的 VCR 共享请求?

我的录像机配置是:

一个测试示例是:

运行此测试时,它会调用几个第 3 方 API,这些 API 会通过 VCR 记录这些请求。我遇到的问题是,VCR 在运行时似乎正在使用来自其他磁带的请求,这导致某些测试出现间歇性故障。我检查了磁带,有时(取决于顺序是如何显示的)所有请求都会被完美地记录和播放。值得注意的是,当整个套件运行时,它们总是在自己运行时工作。我不会在失败的规范之间共享卡带,唯一共享的是对 API 的一些常见请求,我强制对卡带命名以确保它使用正确的卡带。我希望这是有道理的...

我的主要问题是什么可能导致这个问题?使用测试时也可以正常工作,但使用模式record => :new_episodes时却不行。record => :once考虑到这种情况,这可能没问题,但我想确保我没有创建不必要的请求,并且根据我的理解record => :once应该可以工作,因为每个规范的请求都应该被隔离。

我知道如果没有更多信息,这可能很难回答,所以请告诉我是否有帮助。提前致谢!

0 投票
1 回答
2510 浏览

ruby - 关闭水豚的正确方法(使用 poltergeist/phantomjs)

我在我的 linux 服务器上通过 capybara 运行了很多工作。我正在使用 poltergeist phantomjs 驱动程序。过了一会儿,我收到了很多这些错误:

我看了看,lsof看起来我有很多这些:

现在我怀疑这可能是因为我没有正确关闭连接?

运行以下内容后终止的正确方法是什么:

0 投票
2 回答
1173 浏览

ruby-on-rails - Rails Capybara 测试有空的实例变量

我有一个控制器向我的控制器发送供应商列表,并且在正常视图中它工作正常。

在我看来,我有以下两行:

如果我在浏览器中查看它,它再次起作用。但是,如果我用 Capybara 和 RSpec 测试它,它是空的。

Vendor.all和上面Vendor.includes...两个返回值,但由于某种原因在我的测试中它没有显示任何东西......得到一个Capybara::Element not found.

更新

出于测试目的,我直接使用控制器创建了供应商:

规范通过。什么——?这一定是 FactoryGirl 问题,或者由于某种原因,我的记录在运行测试之前被删除了?在我创建对象后对它们进行安慰显示了一条带有 ID 的记录,我想这并不能证明它正在将它们放入数据库中......

0 投票
2 回答
2715 浏览

ruby - 将 poltergeist 与代理一起使用?

我正在使用 PhantomJS 和 poltergeist 来模拟浏览器,但是我不确定如何指定要在代码中使用的代理:

另外,由于某种原因,我page在使用 poltergeist 时得到了未定义的方法,有人可以建议吗?

0 投票
2 回答
1576 浏览

ruby-on-rails - NoMethodError:未定义的方法“结果”#

使用 capybara 和 poltergeist 运行 rspec 时随机出现以下错误:

我认为原因可能与数据库连接有关。那么,有人可以向我确认吗?我将尝试将截断与 database_cleaner 一起使用,但使用截断运行整个套件太慢了!

避免这种情况并保持规范快速运行的策略值得赞赏!

回溯:

0 投票
1 回答
2023 浏览

selenium - 如何使用 poltergeist 拖放?

现在我在 Capybara 中使用 selenium 驱动程序,但我想改用 Poltergeist。不过,我正在测试的许多界面都涉及在页面上的特定位置拖放元素。我编写了以下用于拖放的方法,该方法适用于 selenium:

我将如何在 poltergeist 中写出这样的东西?

0 投票
1 回答
948 浏览

ruby-on-rails - 无法使用 FactoryGirl 的用户/数据登录

在进行将使用 JS 的测试之前,我必须先登录用户。登录页面确实有效(此测试除外)。

问题是单击“登录”按钮返回到带有“无效用户/密码”组合的页面(好像用户不在数据库中)。问题是显然使用确实在数据库中并且密码是正确的(测试“可以验证用户”通过)。

在单击“登录”按钮之前,我截取了屏幕截图,并且正确填充了字段。我试图在 before 块内创建用户,但它也不起作用。

登录页面没有任何特别之处,没有 javascript 或任何东西。只是一个普通的形式发布到服务器。

有任何想法吗?

0 投票
1 回答
1775 浏览

ruby-on-rails - Capybara 断言在 Poltergeist 下失败

我有以下规格:

我的login_user方法在我的spec_helper.rb文件中,如下所示:

当我添加到我的规范时,最后一次assert失败。, js: true

当我save_and_open_page在它之前做一个正确的事情时,页面出现了零 CSS 和大概没有 JS 的页面。由于某种原因,它没有读取资产。我认为当您运行测试时,它会像在开发模式下一样读取资产。我真的需要帮助。