これを序列する最も重要なことは、おそらく私がc9を使用していることです。これはクラウド内のIDEなので、ChromeまたはFirefoxをWatirで使用しようとすると、ChromeやFirefoxブラウザへのパスを書き込めないため、多くの問題が発生します。私は、私が見つけることができる待機方法のあらゆるバリエーションも試しましたが、どれもうまくいきませんでした。ウェブウォークにアクセスした後に何か要素を見つけようとしたときにウォーター・タイムアウトが発生する
def save
require 'watir'
require 'phantomjs'
@browser = Watir::Browser.new :phantomjs
@browser.goto "https://kroger.softcoin.com/programs/kroger/digital_coupons/?origin=DigitalCoupons&banner=Smiths#contentBox"
@browser.div(id: "contentBox").wait_until(&:present?).text
@products = @browser.divs
end
エラー
は "contentBox" #上の真の条件を待って、30秒後にタイムアウトし、:タグ名=> "DIV"}>
私は、この問題を解決したいの道をスミスのウェブサイトからデータをスクラップできないのはクロムブラウザを使用することですが、「chromedriver 127.0.0.1:9515に接続できません」というエラーが表示されます
これはfirefoxで正しく動作し、wait_until()メソッドを使用する必要はありません。自動的に:exists:present:enabledを自動的に待機するためです。 Firefox用のgeckodriverは使用しないでください。古いFirefoxを使用してください。正常に動作します。 – RAJ
絶対に必要な場合を除き、従来のFirefoxを使用しないでください。 geckodriverはこの時点で完全な機能に近いです。レガシーFirefoxは、今後のSelenium 4ではオプションではない可能性が高いです。Chromeのドライバは現在サポートされているので、Phantomjの代わりに 'Watir :: Browser.new:chrome、headless:true'をチェックしてください。はるかに高速で、phantomjsは推奨されなくなりました。 – titusfortner
@titusfortner firefoxは52SE版でセレンのサポートを元に戻すことを知っていますか? – RAJ