SeleniumBasic ActionsClass マウス、キーボードの同時一括操作

リファレンス

概要

取得した要素に対して、複数のマウス、キーボード操作を一括で実行するクラス。

オブジェクト設定

・変数宣言

Dim acts As Actions

・親オブジェクト:WebDriver

文法

driver.Actions.[メソッド1].[メソッド2].….[メソッドn].Perform

メソッド・プロパティ

メソッド

スクロールできます
Name解説Short Example
Click要素をクリックdriver.Actions.Click(ele).SendKeys("hoge").Perform
ClickAndHold要素クリックを保持
ClickContext要素を右クリックdriver.Actions.MoveToElement(ele).Wait(3000).ClickContext.Perform
ClickDouble要素をダブルクリックdriver.Actions.ClickDouble(ele).SendKeys("hoge").Perform
DragAndDrop要素のドラッグ&ドロップ
(向先要素指定)
DragAndDropByOffset要素のドラッグ&ドロップ
(向先xy軸指定)
 
KeyDownキーボード押下保持
(Control, Alt ,Shift限定)
driver.Actions.KeyDown(keys.Control).Click(ele).Release.Perform
KeyUpキーボード押下解除
(Control, Alt ,Shift限定)
driver.Actions.KeyUp(keys.Control).Perform
MoveByOffsetWeb要素キャッチの移動(向先xy軸指定)driver.Actions.MoveToElement(nearElm).MoveByOffset(670, 10).Click.Perform
MoveToElementカーソル移動(向先要素指定)driver.Actions.MoveToElement(ele).Perform
Perform動作の確定driver.Actions.Click(ele).SendKeys("hoge").Perform
Release保持している動作の解除driver.Actions.KeyDown(keys.Control).Click(ele).Release.Perform
SendKeysキーボード入力driver.Actions.Click(ele).SendKeys("hoge").Perform
Wait待機(ミリ秒)driver.Actions.MoveToElement(elm).Wait(3000).Click.Perform

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

Example

action_basic

Private Sub action_basic()
    Dim Keys As New selenium.Keys
    Dim Driver As New selenium.ChromeDriver
    Dim ele As WebElement
    Driver.Get "https://google.co.jp"
    Set ele = Driver.FindElementByName("q")
    Driver.Actions.Click(ele).SendKeys("hoge").Perform
    Driver.Wait 2000
    Driver.Quit
End Sub

action_click

Private Sub action_click()
    Dim driver As New selenium.ChromeDriver
    Dim ele As WebElement
    Dim TouchScreen As TouchScreen
    
    driver.Get "https://anysweb.co.jp/advancedmousecheck/"
        
    Set ele = driver.FindElementById("rtest1")
    driver.Actions.MoveToElement(ele).Wait(1000).ClickContext.Perform
    Set TouchScreen = driver.TouchScreen
    TouchScreen.ScrollFrom ele, 0, 120
    driver.Wait 3000
    
    Set ele = driver.FindElementById("ltest2")
    TouchScreen.ScrollFrom ele, 0, -320
    driver.Actions.MoveToElement(ele).Wait(3000).ClickDouble.Perform
    Set TouchScreen = driver.TouchScreen
    driver.Wait 3000
    
    driver.Quit
End Sub

action_specialkey

Private Sub action_specialkey()
    Dim driver As New selenium.ChromeDriver
    Dim ele As WebElement
    Dim keys As New keys
    driver.Get "https://programan.org/"
    Set ele = driver.FindElementByClass("newmark")
    driver.Actions.KeyDown(keys.Control).Click(ele).Release.Perform
    driver.Window.SwitchToNextWindow
    driver.Actions.KeyUp(keys.Control).Perform
    driver.Wait 3000
    driver.Quit
End Sub
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

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