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

capybara - Capybara Poltergeist - 网站显示启用 cookie 的消息

我正在运行 Capybara 1.1.2 和 Poltergeist 1.0.1 进行无头测试。使用 selenium 驱动程序可以正常运行测试。但是对于 poltergeist,站点快照声明 cookie 已禁用。我是否缺少任何配置。默认情况下不应该启用cookie吗?

0 投票
2 回答
2517 浏览

ruby-on-rails - 如何使用 rspec、capybara 和 poltergeist 编写不会超时或随机失败的 javascript 测试?

我的测试超时和随机失败时遇到问题。我一直在寻找如何编写健壮的水豚集成测试的最佳实践,但我没有发现任何有用的东西。

自从我们开始编写一堆测试以来,我们的 CI 服务器一直随机失败,使我们的应用看起来非常不稳定,但测试总是(大部分)在本地通过。

我想了解您和其他有经验的 BDD/TDD 专家如何处理:

  • 如何处理外部 javascript 和东西(KissMetrics、Google Analyics 等)和
  • 调试和防止破坏构建的超时错误

任何帮助,将不胜感激。

0 投票
1 回答
1875 浏览

ruby-on-rails-3 - 让 capybara/cucumber 和 poltergeist 与 twitter 引导模式对话框一起工作

背景: 我正在使用 Cucumber/Capybara/PhantomJS/Poltergeist 测试一个 Rails 应用程序。我的黄瓜步骤定义文件之一中有一个 click_link 调用。然后这个 click_link 调用会导致 Rails 调用控制器的 show 方法。控制器通过特定 id 查找对象并以 javascript 格式 (format.js) 响应。show.js.erb 文件给出的响应然后在 Twitter Bootstrap 模式对话框上执行一些文本字符串替换,以在框中显示自定义状态消息。然后显示模态对话框。

这一切都在生产中起作用。但它似乎在测试中不起作用。我收到一条错误消息“找不到带有值或 id 或文本‘关闭’的按钮 (Capybara::ElementNotFound)”。此外, puts page.html 仅显示以下内容:

这让我觉得模态对话框根本没有显示出来。有人对发生了什么有任何想法吗?

cucumber_steps.rb

Twitter Bootstrap 模式框页面中的 HTML:

Rails 显示方法

0 投票
2 回答
588 浏览

ruby-on-rails - 当我调用 page.driver .render 时测试挂起(使用 phantomjs、capybara 和 poltgergeist)

我对这个问题感到沮丧.. 我有一个 Test::Unit 测试.. 使用 Capybara + Poltergeist + PhantomJS .. 试图截取屏幕截图..

但是当我调用它时..

就是挂了。。

有任何想法吗?谢谢!

0 投票
2 回答
1851 浏览

autocomplete - @javascript 黄瓜测试使用 selenium 驱动程序通过,但在使用 poltergiest 时失败

我正在尝试测试 jquery UI 自动完成功能,我已经使用 selenium 驱动程序通过了测试。我想切换到 poltergiest 进行一些无头测试,但现在我的测试现在失败了。

由于某种我还没有弄清楚的原因,它似乎没有选择自动完成选项

使用 Selenium 驱动程序通过了测试,无需对步骤进行任何更改。

关于如何调试它的任何建议?

版本

  • 硒网络驱动程序(2.27.2)
  • 恶作剧 (1.0.2)
  • 黄瓜 (1.2.1)
  • 黄瓜导轨 (1.0.6)
  • 水豚 (1.1.4)
  • 幻影 1.8.1
0 投票
1 回答
898 浏览

angularjs - angular.js 和 phantom.js 错误

当我尝试通过此堆栈运行 phantomjs 时出现错误:rails (3.2.11)、rspec (2.12.2)、capybara (1.1.4)、poltergeist (1.0.2)、phantomjs (1.8.1) 和 angular .js (1.1.2)。

我有很多规范在这个堆栈上运行良好,没有角度。但是在我启动 Angular 的测试页面上,我收到了以下错误。当我使用 selenium 驱动程序运行规范时,它们通过了。

即使在最简单的内容上也会发生这种情况,只有没有任何其他 ng 指令(没有实例化控制器等),例如

规格看起来像

这似乎是一个 phantom.js 错误,因为页面在浏览器中加载(js 控制台中没有错误)并且规范使用 Selenium 运行。这是一个已知的问题?我能过去吗?谢谢。

乔恩

0 投票
1 回答
679 浏览

rspec - 测试运行期间的 Poltergeist 切换代理

我们只是从 capybara-webkit 迁移到 Poltergeist。以前我们确实使用 capybara-webkit 和puffing billy,你可以在这里看到:

这发生在运行时,我想对 Poltergeist 做同样的事情我意识到可以通过使用 phantomjs_options ( https://github.com/jonleighton/poltergeist#customization )通过水豚驱动程序设置传递 CLI 选项来设置代理并忽略 ssl 错误。

是否可以在运行时启用/禁用代理和 ssl 错误?如果是怎么办?

0 投票
1 回答
7994 浏览

javascript - 如何解决这个 Javascript 错误 TypeError: 'undefined' is not an object (evaluate 't.subscribe')?

当我单击一个项目以在 web 上打开时出现以下错误。我们中的任何人都知道解决方案吗?

错误:test_inline_edit_an_item_app_built_via_app_builder(TaskFeature): Capybara::Poltergeist::JavascriptError: 页面上的 Javascript 代码中出现一个或多个错误。如果您不关心这些错误,可以通过在 Poltergeist 配置中设置 js_errors: false 来忽略它们(有关详细信息,请参阅文档)。


TypeError:'未定义'不是对象(评估't.subscribe')在https://d3tga9h80dykic.cloudfront.net/assets/cd319648/podio-common-amd.js:1 /home/abhay/.rvm/gems/ruby-1.9.3-p362/gems/poltergeist-1.1.0/lib/capybara/poltergeist/browser.rb:197:in command' /home/abhay/.rvm/gems /ruby-1.9.3-p362/gems/poltergeist-1.1.0/lib/capybara/poltergeist/browser.rb:42:infind' /home/abhay/.rvm/gems/ruby-1.9.3-p362/gems /poltergeist-1.1.0/lib/capybara/poltergeist/driver.rb:110:in find' /home/abhay/.rvm/gems/ruby-1.9.3-p362/gems/capybara-2.0.2/lib/ capybara/node/finders.rb:113:inblock in all'/home/abhay/.rvm/gems/ruby-1.9.3-p362/gems/capybara-2.0.2/lib/capybara/node/base.rb: 78:在同步中'/home/abhay/.rvm/gems/ruby-1.9.3-p362/gems/capybara-2.0.2/lib/capybara/node/finders.rb:112:inall'/home/abhay/ .rvm/gems/ruby-1.9.3-p362/gems/capybara-2.0.2/lib/capybara/node/finders.rb:26:in block in find' /home/abhay/.rvm/gems/ruby- 1.9.3-p362/宝石/水豚-2.0。2/lib/capybara/node/base.rb:78:insynchronize'/home/abhay/.rvm/gems/ruby-1.9.3-p362/gems/capybara-2.0.2/lib/capybara/node/finders。 rb:26:in find' /home/abhay/.rvm/gems/ruby-1.9.3-p362/gems/capybara-2.0.2/lib/capybara/session.rb:341:inblock (2 个级别) 在课堂上:Session' /home/abhay/.rvm/gems/ruby-1.9.3-p362/gems/capybara-2.0.2/lib/capybara/dsl.rb:51:in block (2 levels) in ' task_feature.rb :489:inblock in test_inline_edit_an_item_app_built_via_app_builder' /home/abhay/podio/auto_deetee/auto_deetee/test/test_helper.rb:69:in login_as' task_feature.rb:473:intest_inline_edit_an_item_app_built_via_app_builder'2/lib/capybara/session.rb:341:inblock(2 个级别)在类:Session' /home/abhay/.rvm/gems/ruby-1.9.3-p362/gems/capybara-2.0.2/lib/ capybara/dsl.rb:51:in block (2 levels) in 'task_feature.rb:489:inblock in test_inline_edit_an_item_app_built_via_app_builder' /home/abhay/podio/auto_deetee/auto_deetee/test/test_helper.rb:69:in login_as' task_feature。 rb:473:intest_inline_edit_an_item_app_built_via_app_builder'2/lib/capybara/session.rb:341:inblock(2 个级别)在类:Session' /home/abhay/.rvm/gems/ruby-1.9.3-p362/gems/capybara-2.0.2/lib/ capybara/dsl.rb:51:in block (2 levels) in 'task_feature.rb:489:inblock in test_inline_edit_an_item_app_built_via_app_builder' /home/abhay/podio/auto_deetee/auto_deetee/test/test_helper.rb:69:in login_as' task_feature。 rb:473:intest_inline_edit_an_item_app_built_via_app_builder'

1 次测试,0 次断言,0 次失败,1 次错误,0 次跳过

0 投票
4 回答
3757 浏览

poltergeist - send_keys 支持 Poltergeist?

我想从 Selenium 切换到 Poltergeist,但我需要模拟一个条形码扫描仪,它看起来像<body>标签的键盘输入。我将此代码与 Selenium 一起使用:

Poltergeist 有没有办法将一串键发送到任意元素(即,不是输入)?

0 投票
1 回答
468 浏览

rspec - poltergeist 是否正确支持 capybara 的 should_not RSpec 匹配器?

根据 capybara 的自述文件:

以下两个语句在功能上是等效的:

但是,当尝试这样做时,这似乎并不正确。使用 capybara-webkit 时,这似乎工作正常:

但是当使用 poltergeist 时,它经常会失败,这似乎是在说它在幕后使用#has_css?,实际上并不会等待给定的元素消失:

如果我将断言改为这样读取,它似乎每次都成功:

我疯了,还是这是 poltergeist 中的错误?我正在使用 PhantomJS 1.8.2、poltergeist 1.1.0 和 capybara 2.0.2。

should_not have_css这是示例的调试输出:http: //pastebin.com/4ZtPEN5B

这是should have_no_css示例中的一个:http: //pastebin.com/TrtURWcZ