《SeleniumBasic 3.141.0.0 - 在VBA中操作浏览器》系列文章之七:使用行为链模拟鼠标和键盘操作
SeleniumBasic中的Actions类可以实现鼠标和键盘操作。方法列表如下
其中标记为橙色的是键盘方面的操作。标记绿色的Create方法是创建行为时必须要运行的。
- Function Click([onElement As IWebElement]) As Actions
- Function ClickAndHold([onElement As IWebElement]) As Actions
- Function ContextClick([onElement As IWebElement]) As Actions
- Sub Create(driver As IWebDriver)
- Function DoubleClick([onElement As IWebElement]) As Actions
- Function DragAndDrop(source As IWebElement, target As IWebElement) As Actions
- Function DragAndDropToOffset(source As IWebElement, offsetX As Long, offsety As Long) As Actions
- Function KeyDown(theKey As String, [onElement As IWebElement]) As Actions
- Function KeyUp(theKey As String, [onElement As IWebElement]) As Actions
- Function MoveByOffset(offsetX As Long, offsety As Long) As Actions
- Function MoveToElement(toElement As IWebElement, [offsetX As Long], [offsety As Long]) As Actions
- Sub Perform()
- Function Release_([onElement As IWebElement]) As Actions
- Function Sendkeys(keysToSend As String, [element As IWebElement]) As Actions
执行行为链时必须运行Perform方法,否则没有效果。
可以看到均有一个element可选参数,这个可以提供,也可以不写。
下面的程序,演示了在搜索中按下右键,弹出快捷菜单。
Dim Action As SeleniumBasic.Actions Set Action = New SeleniumBasic.Actions Action.Create driver:=WD Action.ContextClick(onElement:=keyword).Perform
WD是浏览器对象,通过Action.Create方法与之关联。运行ContextClick方法,会在元素上按下右键。对于单击、双击都是相同的用法,不需举例。

按键方面,可以使用KeyDown按下Control、Shift或功能键,也可以使用KeyUp弹起。
还可以使用SendKeys发送字符串。下面程序演示了创建行为链,向百度搜索框中发送Control+A全选,然后发送Control+X剪切。这样就把文本框的内容剪切到剪贴板上了。
Dim Key As SeleniumBasic.Keys Dim Action As SeleniumBasic.Actions Set Key = New SeleniumBasic.Keys Set Action = New SeleniumBasic.Actions Action.Create driver:=WD Call Action.KeyDown(Key.Control, keyword).SendKeys("a", keyword).KeyUp(Key.Control, keyword).KeyDown(Key.Control, keyword).SendKeys("x", keyword).KeyUp(Key.Control, keyword).Perform
注意,KeyDown和KeyUp后面跟的参数,需要从Keys类中得到。支持的按键有
Property Add As String 
Property Alt As String	    	
Property ArrowDown As String	    	
Property ArrowLeft As String	    	
Property ArrowRight As String	    	
Property ArrowUp As String	    	
Property Backspace As String	    	
Property Cancel As String	    	
Property Clear As String	    	
Property Command As String	    	
Property Control As String	    	
Property Decimal As String	    	
Property Delete As String	    	
Property Divide As String	    	
Property Down As String	    	
Property End As String	    	
Property Enter As String	    	
Property Equal As String	    	
Property Escape As String	    	
Property F1 As String	    	
Property F10 As String	    	
Property F11 As String	    	
Property F12 As String	    	
Property F2 As String	    	
Property F3 As String	    	
Property F4 As String	    	
Property F5 As String	    	
Property F6 As String	    	
Property F7 As String	    	
Property F8 As String	    	
Property F9 As String	    	
Property Help As String	    	
Property Home As String	    	
Property Insert As String	    	
Property Left As String	    	
Property LeftAlt As String	    	
Property LeftControl As String	    	
Property LeftShift As String	    	
Property Meta As String	    	
Property Multiply As String	    	
Property Null As String	    	
Property numberpad0 As String	    	
Property numberpad1 As String	    	
Property numberpad2 As String	    	
Property numberpad3 As String	    	
Property numberpad4 As String	    	
Property numberpad5 As String	    	
Property numberpad6 As String	    	
Property numberpad7 As String	    	
Property numberpad8 As String	    	
Property numberpad9 As String	    	
Property PageDown As String	    	
Property PageUp As String	    	
Property Pause As String	    	
Property Return As String	    	
Property Right As String	    	
Property Semicolon As String	    	
Property Separator As String	    	
Property Shift As String	    	
Property Space As String	    	
Property Subtract As String	    	
Property Tab As String	    	
Property Up As String
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号