2017-08-24 1 views
0

Le code comme ça:Comment définir les entrées Vue via fantôme?

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

ne fonctionne pas parce que Vue utilise v-model valeur au lieu de value attribut. Existe-t-il un moyen de modifier les valeurs d'entrée et de modèle via javascript dans phantomjs?

Remarques

  1. attribut Réglage v-model pour les entrées ne résolvent pas le problème .

  2. L'utilisation de CSP-compliant-build n'est pas possible car je ne peux pas reconstruire le projet à partir de sources.

  3. Toute extension de chrome aussi ne peut pas être utilisé parce que la page est rendue par PhantomJS

+0

Avez-vous essayé de déclencher un événement 'change' (ou d'appeler le gestionnaire de changement directement) dans ces champs après avoir défini les valeurs? – Botje

Répondre

1

PhantomJS supports sending "real" keypress événements à la page. Vous devez d'abord mettre en évidence le champ nécessaire, puis le saisir:

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);