SeleniumBasic WindowClass ウィンドウ(画面)操作

リファレンス

概要

ウィンドウハンドル用クラス。ウィンドウサイズの変更や、複数ウィンドウを操作する場合、ウィンドウのフォーカス移動を操作できます。

オブジェクト設定

・変数宣言

Dim Win As selenium.window

・親クラス:WebDriver

文法

Set Win = driver.window
Win.[メソッド]

メソッド・プロパティ

メソッド

スクロールできます
Name解説ShortExample
Activate指定ドライバのウィンドウにフォーカスを移すwinMain.Activate
Close現在のウィンドウを閉じるIf Not win.Equals(winMain) Then win.Close
Equals指定ウィンドウが正しいか判別If Not win.Equals(winMain) Then win.Close
FullScreen現在ウィンドウのフルスクリーンモード
Maximize現在ウィンドウを画面最大化driver.Window.Maximize
Position画面の左上隅に対するブラウザー ウィンドウの位置を取得 Debug.Print win.Position.X
 Debug.Print win.Position.Y
SetPosition画面の左上隅に対するブラウザー ウィンドウの位置を指定win.SetPosition 200, 200
SetSizeウィンドウサイズをセットWin.SetSize 800, 600
Sizeウィンドウサイズを取得Debug.Print Win.Size.Width; Win.Size.Height
SwitchToNextWindow次のウィンドウへフォーカスを移すdriver.Window.SwitchToNextWindow
SwitchToPreviousWindow前のウィンドウへフォーカスを移すdriver.Window.SwitchToPreviousWindow
SwitchToWindowByNameウィンドウハンドル値でウィンドウ移動driver.Window.SwitchToWindowByName hwnds.Item(1)
SwitchToWindowByTitleウィンドウタイトル名でウィンドウ移動driver.Window.SwitchToWindowByTitle "New Window"

※Short Exampleは、動作確認ができたコードを記載しています。

・プロパティ

スクロールできます
Name解説ShortExample
Titleウィンドウタイトルを取得Assert.Equals "New Window", driver.Window.title

※Short Exampleは、動作確認ができたコードを記載しています。

Example

Window_SetSize

Private Sub Window_SetSize()
    Dim driver As New ChromeDriver
    Dim Win As selenium.Window
    driver.Get "https://google.co.jp"
    Set Win = driver.Window
    Win.Maximize
    driver.Wait 2000
    Win.SetSize 800, 600
    Debug.Print Win.Size.Width; Win.Size.Height
    driver.Wait 2000
    driver.Close
    driver.Quit
End Sub

Window_Position

Private Sub Window_Position()
    Dim driver As New ChromeDriver
    driver.Get "https://google.co.jp"
    Dim Win As selenium.Window
    Set Win = driver.Window
        
    Debug.Print Win.Position.X
    Debug.Print Win.Position.Y
    driver.Wait 2000
    Win.SetPosition 200, 200
    
    driver.Wait 2000
    driver.Quit
End Sub

Windows_Switch

Private Sub Windows_Switch()
    Dim Assert As New selenium.Assert
    Dim driver As New ChromeDriver
    driver.Get "https://the-internet.herokuapp.com/windows"
    driver.FindElementByLinkText("Click Here").Click
    driver.Wait 2000
    driver.Window.SwitchToNextWindow
    Assert.Equals "New Window", driver.Window.title

    driver.Window.SwitchToPreviousWindow
    Assert.NotEquals "New Window", driver.Window.title
    driver.Window.SwitchToWindowByTitle "New Window"
    driver.Quit
End Sub

Windows_SwitchByName

Private Sub Windows_SwitchByName()
    Dim Keys As New Keys
    Dim driver As New ChromeDriver
    driver.Get "https://www.google.co.jp"
    Dim hwnds As selenium.List
    Set hwnds = driver.Send("GET", "/window_handles")
    driver.FindElementByClass("MV3Tnb").Click Keys.Control
    driver.Window.SwitchToNextWindow
    driver.Wait 2000
    driver.Window.SwitchToWindowByName hwnds.Item(1)
    driver.Wait 2000
    driver.Quit
End Sub

Windows_Close

Private Sub Windows_Close()
    Dim driver As New ChromeDriver
    driver.Get "https://the-internet.herokuapp.com/windows"
    Dim winMain As selenium.Window
    Set winMain = driver.Window
    driver.FindElementByLinkText("Click Here").Click
    Stop
    Dim Win As selenium.Window
    For Each Win In driver.Windows
        If Not Win.Equals(winMain) Then Win.Close
    Next Win
    winMain.Activate
    Stop
    driver.Quit
End Sub
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

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