技術関連 - スクレイピング
Selenium::WebDriver::Error::TimeoutErrorは、 直下のrescueで補足される と思っていたが、そうではなかった。 これに気づくのにめちゃくちゃ時間がかかりました笑 調べていくと、 wait.untilブロックの外側 にraiseされていました...
2通りの解決方法がありました。 上に被っている要素を、閉じるなり移動させる clickではなくsubmitを使う submitの方が手っ取り早かったので、自分はsubmitで対応しました。
キーワードに一致する商品が見つからない場合、 "該当する商品が見つかりませんでした" というテキストが表示されます。 なのでそれを判定条件にしました。 下記、サンプルコードです。 # ヘッドレス(ブラウザを立ち上げない)で動かすためのオプションを生成…
attribute() を使います。 attribute('data-XXX') のような形です。 # data-remarksというプロパティを持つ要素を全て取得。戻り値は取得出来た要素の配列 driver.find_elements(:xpath, "//*[@id='search']/div[1]/div[2]/div/span[4]/div[1]/div[#{i + 1}]…