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:///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
廣告

© . All rights reserved.