QR Send

スマホとPCのChrome間で、URLやテキストをQRコード1回のペアリングで送り合える自作Chrome拡張。アカウント不要・無料。

使ってみる →

Selenium・自動化

Selenium・自動化

ヘッドレスChrome(Selenium)の文字化け・レイアウト崩れを防ぐ実運用設定

ヘッドレスChrome(Selenium/Ruby)で発生しがちな日本語の文字化けとレイアウト崩れを、フォント導入とオプション設定で安定させる方法を解説します。
Selenium・自動化

Seleniumで「見えているのに操作できない」を解消する:iframe・別タブ・別ウィンドウをまたぐ操作の定石

Seleniumで要素が見えているのに操作できない原因の多くはiframeや別タブへの切り替え漏れです。switch_to.frameとwindow_handlesによる基本操作と、ensureで必ず元のコンテキストへ戻すヘルパー化の方法を解説します。
Selenium・自動化

SeleniumのStaleElementReferenceErrorを根絶する:要素を掴み直す再取得パターン(Ruby)

SeleniumのStaleElementReferenceErrorを、要素参照を使い回さず「使う直前に毎回find」する再取得パターンとリトライヘルパー(with_retry_on_stale)で根絶する方法を解説します。
Selenium・自動化

スクレイピングで集めたデータを外部APIで加工するバッチの設計:キャッシュ・レート制御・途中再開

スクレイピングで集めたデータを外部APIで加工するバッチを設計する際、従量コストと実行時間を抑えるためのローカルキャッシュ・レート制限対応・途中再開の仕組みをRubyで解説します。
Selenium・自動化

URLからページ固有のIDを安定して抜き出す:優先順位付き正規表現フォールバックの設計(Ruby)

同じサイトでも複数あるURL形式からページ固有のIDを安定して取り出すため、優先順位付き正規表現配列と妥当性検証、パターンごとのログ記録という設計を解説します。
Selenium・自動化

Seleniumで複数サイトを巡回するスクレイパーを「共通設計」にまとめる

Seleniumで複数の一覧型サイトを巡回するスクレイパーをサイトごとにコピペ増殖させず、基底クラス+アダプタ+設定の3層に共通化する設計を解説します。
Selenium・自動化

住所からGeocoding APIで郵便番号を引く:建物名除去と区切り文字違いの多段フォールバック

住所文字列からGeocoding APIで郵便番号を引く際、建物名除去と区切り文字違いによる多段フォールバック、および重複排除の共通ライブラリ化について解説します。
Selenium・自動化

Seleniumでブロックエディタに自動入力する:send_keysが効かない領域はキーボードショートカットで制御する

ブロック単位のリッチテキストエディタはsend_keysで直接制御できないため、Ctrl+A+DeleteやShift+Enterなどのキーボードショートカットを組み合わせて自動入力する方法を解説します。
Selenium・自動化

Seleniumで「driver.getが失敗する」を乗り切る:ドライバを丸ごと作り直すリトライ設計

Seleniumのdriver.getが失敗した際にdriver.quitしてドライバを丸ごと再生成しリトライする設計が、業種の異なる複数の自動化で独立に同じ形へ収束していた理由を解説します。
Selenium・自動化

Seleniumで「次へ」ボタンがクリックできない時に、座標までscrollしてから再試行する

Seleniumで一覧ページの「次へ」ボタンがクリックできない問題を、要素の座標までscrollしてから再試行する方法で解決します。