概要
取得した要素に対して、複数のマウス、キーボード操作を一括で実行するクラス。
オブジェクト設定
・変数宣言
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 |
MoveByOffset | Web要素キャッチの移動(向先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