tutorial que alternative javascript phantomjs integration-testing casperjs

javascript - alternative - phantomjs que es



Error de CasperJS y ''JavaScript inseguro para acceder al marco con URL'' (4)

Este problema está solucionado en phantomjs versión 1.9

" phantomjs": "^1.9.9"

para casperJs

casperjs --ssl-protocol=tlsv1 test run.js

Tengo una página simple con javascript que valida el correo electrónico escrito en la entrada:

email.html:

<!DOCTYPE html> <html> <head> <title>Email validation</title> <script src="email.js"></script> </head> <body> <span style="padding: 5px;"> <input type="text" id="email-input" placeholder="Email..."></input> </span> </body> </html>

email.js:

var checkEmail = function() { var regexp = /BIG_REGEX/; var email = document.getElementById(''email-input'').value; if (email === '''') removeFrame(); else if (regexp.test(email)) drawFrame(''green''); else drawFrame(''red''); }; var removeFrame = function() { var input = document.getElementById(''email-input''); input.parentNode.style.backgroundColor = input.parentNode.parentNode.style.backgroundColor; }; var drawFrame = function(color) { var input = document.getElementById(''email-input''); input.parentNode.style.backgroundColor = color; }; window.onload = function() { document.getElementById(''email-input'').onkeyup = checkEmail; };

Quiero probar la funcionalidad de validación utilizando CasperJS. Aquí está mi caso de prueba:

prueba / validator.test.js:

var fillEmail = function(browser, email) { browser.sendKeys(''#email-input'', email, {reset: true}); }; var getValidation = function(browser) { var color = browser.evaluate(function () { return document.getElementById(''email-input'').parentNode.style.backgroundColor; }); return color; }; var validate = function(browser, email) { fillEmail(browser, email); return getValidation(browser); }; casper.test.begin(''Validation testing'', function suite(test) { casper.start(''http://localhost:8000/email.html'', function() { test.assertEquals(validate(this, ''[email protected]''), ''green'', ''[email protected]''); test.assertEquals(validate(this, ''vnbgfjbndkjnv''), ''red'', ''vnbgfjbndkjnv''); }).run(function() { test.done(); }); });

Pero cuando ejecuto pruebas utilizando casperjs test test/validator.test.js , siempre hay un error después de la información sobre las pruebas:

Unsafe JavaScript attempt to access frame with URL about:blank from frame with URL file:///C:/Users/home/AppData/Roaming/npm/node_modules/casperjs/bin/bootstrap.js. Domains, protocols and ports must match.

Que pasa

Versión PhantomJS: 1.9.8


Hola, hay varias soluciones para tratar de solucionar esto al salir de fantasma de una manera diferente, como

casperjs --ssl-protocol=tlsv1 test run.js

¿QUÉ DOSIS NO AYUDA Y

setTimeout(function(){ phantom.exit(); }, 0);

en lugar de

this.exit();

Nada ha funcionado !!!

Probé varias versiones diferentes de PhantomJS. Mi salida aparece como JSON y después de muchas horas de intentos fallidos de JSON.parse (stdout) tuve que rendirme. Pensé que ''F'' es solo que voy a manejar el error ''F''.

tan simple antes de salir i

this.echo('',{"error":"'');

y despues envio

this.echo(''"}]'');

Cuando recupero mis resultados, simplemente reemplazo todos los saltos de línea e ignoro el error

stdout = stdout.replace(/(?:/r/n|/r|/n)/g, '''');

Nota al margen: este problema se intentó solucionar con phantom 1.9.9, pero en su lugar se centró en construir phantom 2.0 que no es compatible con CasperJS


PhantomJS reciente (1.9.8) introdujo este mensaje de error. No causa ningún problema real, aparte de las líneas de registro confusas al salir de PhantomJS.

Se solucionó en la versión 1.9 no publicada: https://github.com/ariya/phantomjs/pull/12720


Recibí este mismo error, así que intenté actualizar a phantomjs 1.9.9 (desde 1.9.8 ). Sin embargo, recibí un error de instalación al intentar instalar 1.9.9 , por lo que phantomjs 1.9.7 a phantomjs 1.9.7 , y eso me corrigió este error. Entonces, parece que este es un problema introducido en phantomjs 1.9.8 .