QR Send

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

使ってみる →

katsuya

個人開発

Chrome拡張 Manifest V3のservice workerはすぐ寝る:chrome.alarmsで定期処理を成立させる

Chrome拡張のManifest V3では、background処理がservice workerになりすぐ休止してしまいます。setIntervalが効かなくなる問題をchrome.alarmsとchrome.storageで解決する設計を、実装例つきで解説します。
Selenium・自動化

RSpec+SeleniumでE2Eテストを書く最小構成(Ruby)

RSpec+SeleniumでE2Eテストを書くための最小構成をRubyコード付きで解説。Gemfile・spec_helper・サンプルログインフォームのテスト・失敗時スクショ・CI対応まで一気通貫で紹介します。
Selenium・自動化

Selenium(Ruby)からPlaywright(TypeScript)へ移行して変わった考え方

Selenium(Ruby)からPlaywright(TypeScript)へ移行する中で変わった「待ち方」「ロケータの扱い方」「ブラウザの分離の仕方」という3つの発想の転換と、それでもSeleniumが有利な場面を整理します。
Selenium・自動化

SeleniumのRubyスクレイパーをGitHub Actionsで定期実行する

ローカルPCを常時起動してcronでSeleniumバッチを回すのは意外と面倒です。GitHub Actionsのschedule(cron)とヘッドレスChromeで、無料枠内に収まる定期実行環境を組む方法を解説します。
Selenium・自動化

Seleniumの明示的待機を正しく設計する:sleepをやめてWebDriverWaitと自作条件で「取れるまで待つ」(Ruby)

Seleniumで固定sleepに頼らず、WebDriverWaitとuntilによる明示的待機、標準条件で足りない場合の自作待機条件、タイムアウト時に何を待っていたか分かるメッセージ設計まで、Rubyのコード例で解説します。
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を安定して取り出すため、優先順位付き正規表現配列と妥当性検証、パターンごとのログ記録という設計を解説します。