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

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

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

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

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

Q&A

0回答

1909閲覧

Selenium Builder → ループで要素をずっと取得し続けには・・・

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby

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

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

0グッド

0クリップ

投稿2018/01/21 09:26

###前提・実現したいこと
ウェブページの要素をループでずっと取得し続けたいです。

Selenium builder を使ったrubyプログラムを作成しています。
対象のウェブページへ移動して、
要素をループで取得し続けることをしているのですが、
100回も取得できず、下記のエラーが出力されてしまいます。

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

The element reference of <td class= "対象の要素かな?"> stale; either the element is no longer attached to the DOM, it is not in the current frame context, or the document has been refreshed

Google翻訳によると・・・

<td class = "対象の要素かな?"> staleの要素参照。要素がDOMに接続されていないか、現在のフレームコンテキストに存在していないか、またはドキュメントがリフレッシュされている

###該当のソースコード

ruby

1require 'selenium-webdriver' 2 3wd = Selenium::WebDriver.for :firefox 4 5 until 関数 6 wd.get("https://取得したい要素が存在するウェブページ") 7 youso = wd.find_element(:xpath, '取得したい要素のパス') 8 puts youso 9 end

結果:100回も取得することなく、下記のエラーが出力されてしまいます。

###試したこと
ループ処理の中に、sleep(1)を挟む ← 効果なし
$wait = Selenium::WebDriver::Wait.new(:timeout => 60)を使う ← 効果なし

###補足情報(言語/FW/ツール等のバージョンなど)
何か必要な情報があれば、追記します。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問