Selenium(Edge/Chrome)

Edge/Chromeで名前指定してタブ移動する【SwitchToWindowByTitle】【Selenium】【ExcelVBA】

VBAでEdge/Chromeを起動し、タブを移動したい場合があります。
以下で前後のタブに移動可能です。

Edge/Chromeで名前指定してタブ移動するサンプルコード

Dim driver As New Selenium.WebDriver

'■Edge/Chromeで指定したタイトルのタブに移動する
Public Sub sample()
    '■ブラウザを起動
    driver.Start "chrome" 'Edgeの場合はdriver.start "edge"
    driver.Get "https://vba-create.jp/"
   
    '■新しいタブを開く(弊社サイト/Yahoo/Googleのタブが立ち上がる)
    driver.ExecuteScript ("window.open('https://www.yahoo.co.jp/')")
    driver.ExecuteScript ("window.open('https://www.google.co.jp/')")
    
    '■現在Seleniumで有効なURLがSwitchToWindowByTitleで移動するのがわかる。
    Debug.Print driver.Url  'https://vba-create.jp/
    driver.SwitchToWindowByTitle ("Yahoo! JAPAN")
    Debug.Print driver.Url  'https://www.yahoo.co.jp/
    
    '■タブが存在しないと実行時エラー発生。(完全一致でないとエラーが発生する)
    driver.SwitchToWindowByTitle ("Yahoo")
    '実行時エラー23
    'NoSuchWindowError
    'Window not found Yahoo
    
End Sub


注意点

  • 同名タイトルのページが複数存在する場合は、先勝ちです。
  • タイトル名は完全一致で指定する必要があります。※部分一致ではエラー発生します。

関連記事

SeleniumBasicについて

Internet Explorer11 のサポート期限が2022年6月までと、スクレイピング自体入れ替えていく必要があります。
今一番スムーズなのはSeleniumBasicを使用したスクレイピングと考えます。

但し、VBAでのネット記事は少なく困っている方も多いと思います。
弊社で代行開発も可能ですので、お気軽にご用命ください。

コメント

タイトルとURLをコピーしました