2017-08-24 86 views
0

这样的代码:如何通过phantomjs设置Vue输入?

document.getElementById('email').value = 'login'; 
document.getElementById('password').value = 'pwd'; 
document.getElementById('button').click(); 

不起作用,因为Vue的使用v-model值,而不是value属性。有没有一种方法可以通过幻像中的javascript更改输入和模型值?

注意

  1. 设置属性v-model对于那些输入不能解决 问题。使用CSP-compliant-build是不可能的,因为我无法从源重建项目。

  2. 任何Chrome扩展程序,也不能使用,因为页面是通过phantomjs

+0

您是否尝试过在设置值后在这些字段上触发'change'事件(或直接调用change handler)? – Botje

回答

1

PhantomJS supports sending "real" keypress事件的页面呈现。您需要先关注必要的字段,然后键入:

page.evaluate(function(){ 
    document.getElementById("#email").focus(); 
}); 
page.sendEvent('keypress', 'login'); 

page.evaluate(function(){ 
    document.getElementById("#password").focus(); 
}); 
page.sendEvent('keypress', 'pwd'); 

page.sendEvent('keypress', page.event.key.Enter);