PhantomJS - sendEvent()



它用于向网页发送事件。它们不是 DOM 事件。每个事件都是根据用户交互发送到网页的。

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

鼠标事件

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

MouseEventType - 这是事件类型,它支持 mouseup, mousedown, mousemove, doubleclickclick

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

键盘事件

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('https://127.0.0.1/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.htm
广告