PhantomJS - sendEvent()

它用于向网页发送事件。它们不是 DOM 事件。这些事件中的每一个都基于用户交互发送到网页。

此方法支持的事件是鼠标和键盘事件。

鼠标事件

SendEvent (mouseEventType [, mouseX, mouseY, button = 'left'])

MouseEventType − 这是一种事件类型,它支持 mouseup、mousedown、mousemove、doubleclickclick

MouseXMouseY 事件是可选的,并采用鼠标位置。按钮参数定义要按下的按钮。默认情况下,它位于左侧。对于 mousemove,没有按下任何按钮,因此不考虑按钮。

键盘事件

SendEvent (keyboardEventType, keyOrKeys, [null, null, modifier])

KeyboardEventType − 这是一种事件类型,支持 keyup、keypresskeydown。

Keyorkeys − 第二个参数是来自 page.event.key 的键或字符串。第三和第四个参数不予考虑,需要为其传递 NULL。

Modifier − 它是一个整数,具有以下列表 −

  • 0 −没有按下任何修饰键。

  • 0x02000000 − 按下了键盘上的 Shift 键。

  • 0x04000000 − 按下了键盘上的 Ctrl 键。

  • 0x08000000 − 按下了键盘上的 Alt 键。

  • 0x10000000 − 按下了键盘上的 Meta 键。

  • 0x20000000 −按下键盘按钮。

语法

其语法如下 −

sendEvent(mouseEventType[, mouseX, mouseY, button = 'left'])

示例

让我们举一个例子来了解 sendEvent() 方法的使用。

var page = require('webpage').create(); 
page.onAlert = function(msg) { 
   console.log(msg); 
} 
page.open('http://localhost/tasks/click.html', function(status) { 
   var element = page.evaluate(function() { 
      return document.querySelector('.mybutton'); 
   }); 
   page.sendEvent('click', element.offsetLeft, element.offsetTop, 'left'); 
   console.log('element is ' + element); 
}); 

click.html

<html> 
   <body>  
      <form> 
         <input type = "button" class = "mybutton" value = "Click me" onclick = "clickme()"> 
      </form>  
      <p>welcome to phantomjs</p>  
      
      <script> 
         function clickme() { 
            alert("Hello world!"); 
         } 
      </script>  
   </body> 
   
</html> 

上述程序生成以下输出

Hello world! 
element is [object Object] 

phantomjs_webpage_module_methods.html