質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

解決済

capybara(\+ Poltergeist)でaタグがclick_on出来ない

zack02
zack02

総合スコア0

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

1回答

0評価

0クリップ

3378閲覧

投稿2016/03/20 03:33

編集2022/01/12 10:58

###前提・実現したいこと
rails+capybara(+Poltergeist)でスクレイピングをしようとしています。
aタグをクリックして次のページに移動する動きしようとしているのですがうまく動きません。

###発生している問題・エラーメッセージ
Failures:

1) test next20
Failure/Error: click_on "次の20件"

Capybara::ElementNotFound: Unable to find link or button "次の20件" # ~/vendor/bundler/ruby/2\.3\.0/gems/capybara-2\.6\.2/lib/capybara/node/finders\.rb:43:in `block in find' # ~/vendor/bundler/ruby/2\.3\.0/gems/capybara-2\.6\.2/lib/capybara/node/base\.rb:84:in `synchronize' # ~/vendor/bundler/ruby/2\.3\.0/gems/capybara-2\.6\.2/lib/capybara/node/finders\.rb:32:in `find' # ~/vendor/bundler/ruby/2\.3\.0/gems/capybara-2\.6\.2/lib/capybara/node/actions\.rb:13:in `click_link_or_button' # ~/vendor/bundler/ruby/2\.3\.0/gems/capybara-2\.6\.2/lib/capybara/session\.rb:686:in `block \(2 levels\) in <class:Session>' # ~/vendor/bundler/ruby/2\.3\.0/gems/capybara-2\.6\.2/lib/capybara/dsl\.rb:51:in `block \(2 levels\) in <module:DSL>' # \./test3\.rb:30:in `block \(3 levels\) in <top \(required\)>' # ~/vendor/bundler/ruby/2\.3\.0/gems/capybara-2\.6\.2/lib/capybara/session\.rb:290:in `within' # ~/vendor/bundler/ruby/2\.3\.0/gems/capybara-2\.6\.2/lib/capybara/dsl\.rb:51:in `block \(2 levels\) in <module:DSL>' # \./test3\.rb:28:in `block \(2 levels\) in <top \(required\)>'

Finished in 6.97 seconds (files took 0.31185 seconds to load)
1 example, 1 failure

Failed examples:

rspec ./test3.rb:27 # test next20

###ソースコード(test3.rb)
require 'capybara/rspec'
require 'capybara/poltergeist'
require 'capybara/dsl'

Capybara.javascript_driver = :poltergeist
Capybara.register_driver :poltergeist do |app|
Capybara::Poltergeist::Driver.new(app, {
js_errors: false,
timeout: 1000,
debug: true,
phantomjs_options: [
'--load-images=no',
'--ignore-ssl-errors=yes',
'--ssl-protocol=any']})
end

Capybara.configure do |config|
config.run_server = false
config.default_driver = :poltergeist
config.app_host = 'http://www\.mansion-review\.jp/prefecture/40\.html'
end

describe "test", :type => :feature do
subject{ page }
before { visit('/') }

it "next20", js: true do
within ('#saleHistorySoubaBlock') do
have_text "次の20件"
click_on "次の20件"
end
end
end

###補足情報(言語/FW/ツール等のバージョンなど)
capybara (2.6.2)
globalid (0.3.6)
rails (4.2.6)
rspec-rails (3.4.2)

###追記
広く意見を求めたい為,Stack Overflowとteratailにて同様の質問をしております。
解決しましたら、両方にて共有したいと思いますので、ご容赦ください。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。