IE自動操作の場合、起動しているブラウザをShell関数で捕まえなおすといったことはできましたが、
Seleniumの場合はそういうことはできません。
少し処理させれば起動しているブラウザを処理可能ですが、汎用性があるわけではありません。
Chromeで現在表示しているブラウザを操作するサンプルコード
Dim driver As New Selenium.WebDriver Public Sub sample() '■事前にコマンドライン引数 -remote-debugging-port=9222を指定したショートカット作成しておく。 '"C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222 --user-data-dir="C:/Users/User/AppData/Local/Google/Chrome/User Data" '■ driver.SetCapability "debuggerAddress", "127.0.0.1:9222" driver.Start "chrome" driver.Get "https://vba-create.jp/" End Sub
注意点
- この設定をするとdriver.Start “chrome”だけでは動作しなくなります。
- 事前にChromeを立ち上げていないと、エラー発生します。(新規で立ち上げてくれることはありません)
- user-data-dir=”C:/Users/User/AppData/Local/Google/Chrome/User Data”は使用者によって異なります。tempフォルダ作成し、そちらを指定しても構いません。
関連記事
SeleniumBasicについて
Internet Explorer11 のサポート期限が2022年6月までと、スクレイピング自体入れ替えていく必要があります。
今一番スムーズなのはSeleniumBasicを使用したスクレイピングと考えます。
但し、VBAでのネット記事は少なく困っている方も多いと思います。
弊社で代行開発も可能ですので、お気軽にご用命ください。
コメント