2

DBのRailsアプリで、いくつかのクエリがあります。

# PostController
@post.query # => 'blabla'

この文字列を google または yahoo に入れたい

私が使用する単純なルビーファイルで

require ... all gems
Capybara.app_host = 'http://www.google.com/'

class Google
  include Capybara::DSL
  def search
    visit('/')
    fill_in "q", :with => "blah blah" 
    click_button("Google")
    ...

しかし、どうすればこのコードをコントローラー (またはモデル メソッド) に入れることができますか?

4

2 に答える 2

0
class PostsController < ApplicationController

require 'capybara'
require 'capybara/dsl'

include Capybara::DSL

Capybara.current_driver = :webkit

  def index
    @posts = Post.all
  end

  def show
    @post = Post.find(params[:id])
     visit(@post.search_type)
     fill_in "q", :with => @post.query 
     click_button("Google")

     loop_variable = 0
     num_of_page = 1
     max_count_of_page = 4
     flag_on_break = false

     while(loop_variable == 0) do
       has_on_page = page.has_content?(@post.search_question)

       if has_on_page
         loop_variable = 1
       else
         find('.b:last a').click
         num_of_page += 1
       end
         if num_of_page > max_count_of_page
           flag_on_break = true
           break
           end
         end

      if flag_on_break
        @number = 'Nothing not found'
      else
        @number = num_of_page
      end  
  end

  def new
    @post = Post.new
  end

  def create
    @post = Post.new(params[:post])

    if @post.save
      flash[:notice] = "Post created!"
      redirect_to root_path
    end
  end
end

これは私のコードの一部ですが、主なアイデアは理解できると思います

于 2012-11-30T21:54:42.083 に答える
0

Capybara はそのような使用を意図していません。代わりに機械化を試してみてください。

于 2012-11-30T21:02:04.603 に答える