SeleniumeBasicでフレームページをハンドルする usage_frame

リファレンス

 SeleniumBasicでフレームがあるホームページをハンドルする構文を紹介します。

  • 利用目的は業務効率化です。(テスト自動化ではありません)
  • ブラウザはGoogleChromeが対象です。(EdgeやFirefoxは対象外)
  • 原文のVBAでは現在エラー発生する場合が多いため、修正を加えてます。
Examples.xlsmの保存場所(ここをクリック)

 Examples.xlsmが保存されている場所は、SeleniumBasicがインストールされているサブフォルダ内になります。SeleniumBasicのインストール完了時に保存フォルダを確認することができます。ただ、大体以下フォルダのどちらかにファイル保存されています。

  • C:\Program Files\Seleniumbasic\Examples\Excel
  • shell:Local AppData\SeleniumBasic\Examples\Excel

 紹介されているホームページのイメージは、以下のとおりです。

 構文は、フレームのキャッチを「上段」⇒「上段真中」⇒「全体(デフォルト)」の順番でハンドルしています。以下構文です。

Private Sub Handle_Frames()
    Dim Assert As New Selenium.Assert
    Dim Driver As New ChromeDriver
    Driver.Get "https://the-internet.herokuapp.com/nested_frames"
    Stop
    Driver.SwitchToFrame "frame-top"
    Assert.Equals 3, Driver.FindElementsByTag("frame").count
    Stop
    Driver.SwitchToFrame "frame-middle"
    Assert.Equals "MIDDLE", Driver.FindElementById("content").Text
    Driver.SwitchToDefaultContent
    Assert.Equals 2, Driver.FindElementsByTag("frame").count
    Stop
    Driver.Quit
End Sub

・6行目
 フレーム「上段」をキャッチしています。

・7行目
 現在キャッチしているフレーム数をAssertで確認しています。
(フレームLeft + フレームMiddle + フレームRight = 3個)

・9行目
 フレーム「上段真中」をキャッチしています。

・11行目
 ホームページ上の最初(デフォルト)のフレームに戻ります。

・12行目
 現在キャッチしているフレーム数をAssertで確認しています。
(フレームTop + フレームBottom = 2個)

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

VBAを中心とした自動化、効率化の手法を紹介しています。現在は、SeleniumBasicのexamplesを紹介しています。その内、SeleniumBasic以外の手法も掲載したいと思っております。

目次