PhantomJS - sendEvent()
它用于向网页发送事件。它们不是 DOM 事件。这些事件中的每一个都基于用户交互发送到网页。
此方法支持的事件是鼠标和键盘事件。
鼠标事件
SendEvent (mouseEventType [, mouseX, mouseY, button = 'left'])
MouseEventType − 这是一种事件类型,它支持 mouseup、mousedown、mousemove、doubleclick 和 click。
MouseX 和 MouseY 事件是可选的,并采用鼠标位置。按钮参数定义要按下的按钮。默认情况下,它位于左侧。对于 mousemove,没有按下任何按钮,因此不考虑按钮。
键盘事件
SendEvent (keyboardEventType, keyOrKeys, [null, null, modifier])
KeyboardEventType − 这是一种事件类型,支持 keyup、keypress 和 keydown。
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