Tag: capybara phantomjs

使用poltergeist和capybara创建一个post请求

我正在从由默认Rack驱动程序支持的Capybara过渡到由Poltergeist支持的Capybara。 出于令人沮丧的原因,我需要在加载页面之前操作会话数据。 但我无法弄清楚如何直接使用Rack驱动程序操作会话,所以我 Capybara.current_session.driver.submit :post, “/current_search”, {:session => :data } 不幸的是,Poltergeist driver对象没有submit方法,就像Rack驱动程序一样。 有三种可能性: 如何使用poltergeist / phantomjs提交POST请求? (实现这似乎是最简单的) 如何使用poltergeist / phantomjs直接操作会话数据? 我可以重构代码,以便不再需要直接操作会话数据。 这将是耗时的并且是低优先级的。 PS:由于使用Ruby 1.8,我们仍然坚持使用Poltergeist v1.0.2

为什么Capybara在一次活动后丢弃我的会话?

测试具有before_filter :authenticate_user!的rails应用程序before_filter :authenticate_user! 对于大多数控制器,我无法让Capybara保留会话。 我使用PhantomJS与恶作剧者配置了Capybara。 我使用以下帮助器: require ‘spec_helper’ include Warden::Test::Helpers module FeatureHelpers def login(user = FactoryGirl.create(:default_user)) login_as user, scope: :user user end end 我有以下spec文件: require ‘spec_helper’ include Warden::Test::Helpers feature ‘Leads Data Tasks View’ do before(:each) do @user = login end after{ Warden.test_reset! } context “clicking a task button” do scenario “login persists across multuple actions”, […]

在Capybara / Poltergeist中打开一个新标签

我正在尝试使用capybara / poltergeist点击它来打开一个链接,它在新标签中打开。 我似乎无法让它发挥作用。 @session.find().click 似乎只是停留在同一页面上 click_link “” @session.driver.window_handles 无论我在做什么,似乎只给了我一个窗口。 如何在新标签中打开该链接? 对于什么有效或不成功,似乎是相当混乱的( 对于Capybara,如何切换到新窗口以获得带有“_blank”目标的链接? )。 希望有人已经解决了……似乎无法理解它。 好。 通过更新到最新版本的poltergeist(1.6.0),我们取得了一些进展。 但是现在我有两个窗口,但不知道如何在它们之间切换。 @session.windows 给我 [Window @ handle =“0”,Window @ handle =“1”](略有修改,因为它有点好笑)。 但 @session.switch_to_window(1) 结果是 NoMethodError: undefined method `handle’ for “1”:String

Capybara,Poltergeist和Phantomjs并在身体上给出了空洞的回应

我是从phantomjs回来的空文件。 我正在尝试使用Capybara和Poltergeist为Capybara设置phantomjs驱动程序。 我创建了一个模块如下,并将其包含在使用连接需求的文件中。 require ‘capybara/poltergeist’ module Parser module JSParser include Capybara # Create a new PhantomJS session in Capybara def new_session # Register PhantomJS (aka poltergeist) as the driver to use Capybara.register_driver :poltergeist do |app| Capybara::Poltergeist::Driver.new(app, :debug => true) end # Use XPath as the default selector for the find method Capybara.default_selector = :xpath Capybara.javascript_driver […]

使用poltergeist与代理?

我正在使用PhantomJS和poltergeist来模拟浏览器,但是我不确定如何在代码中指定要使用的代理: require ‘capybara’ require ‘capybara/dsl’ require ‘capybara/poltergeist’ task :experiment => :environment do Capybara.run_server = false Capybara.current_driver = :poltergeist Capybara.app_host = “http://something.com” include Capybara::DSL # set_proxy(‘12.13.14.15’, ‘4521’) visit(‘posts’) page.include?(‘foo’) end 另外,由于某种原因,我在使用poltergeist时会得到未定义的方法page ,有人可以提供建议吗?