こんにちは、mahです。
このブログでは、僕がIT未経験から約1年でフリーランスエンジニアになるまでの過程、ノウハウなどを書いていきます。
今回は、Selenium Webdriverで要素が空かどうか判定する tipsです。
【Ruby スクレイピング】Seleniumで要素が空かどうか判定する
Selenium Webdriverで要素が空かどうか判定する
スクレイピングするサイトによりますが、自分はamazonや楽天の商品を検索出来るサイトを対象にしています。
ECサイトの商品検索の導線は一般的に、
キーワードで商品を検索
見つかれば商品を表示
見つからなければ「該当件数は0件です」と表示する
みたいな感じかと思います。
これを利用します。
対象にしているサイトは、キーワードに一致する商品が見つからない場合、
"該当する商品が見つかりませんでした"
というテキストが表示されます。
なのでそれを判定条件にしました。
下記、サンプルコードです。
# ヘッドレス(ブラウザを立ち上げない)で動かすためのオプションを生成 options = Selenium::WebDriver::Chrome::Options.new options.add_argument('--headless') # オプションを付与してnew driver = Selenium::WebDriver.for :chrome, options: options # idがsearch-resultの要素を取得し、その要素のテキストをチェック driver.find_element(:id, 'search-result').text == "該当する商品が見つかりませんでした"
こんな感じで判定が出来ます。
参考リンク
RailsやRubyを学びたい人へ
RailsやRubyを学びたい人は、
RailsHack(レイルズハック)という、
最近できた新しいプログラミングスクール(今なら通常価格69,800円が、早期割で29,800円!)か、
Udemy
で下記のコースを受講すると良いです★
✅1. フルスタックエンジニアが教える 即戦力Railsエンジニア養成講座
✅2. 【はむ式】ハンズオンで学ぶRuby on Rails 6【Dockerにも触れられる】
<- おすすめ。ハムさんはReactやTypeScriptの教材も非常に丁寧。
✅3. はじめてのRuby on Rails入門-RubyとRailsを基礎から学びWebアプリケーションをネットに公開しよう
また、
Udemy
は定期的にセールをやっていますし(90%OFFとかもザラ)、
「30日間なら返金できる」ので、
満足できなかった時でも安心です。
【公式】RailsHack(レイルズハック)
【公式】Udemyで学んでみる