tutorial spanish locators example español selenium-webdriver jasmine protractor browser-automation chrome-web-driver

selenium webdriver - spanish - La prueba de transportador/jazmín arroja "Error desconocido: error desconocido: se excedió el tamaño máximo de la pila de llamadas"



protractor tutorial español (1)

Estoy teniendo el mismo problema. Descubrí que devolver objetos grandes desde el navegador al transportador lleva al error " Error desconocido: error desconocido: se excedió el tamaño máximo de la pila de llamadas" .

Debe verificar la complejidad del objeto resp que está enviando con la devolución de llamada. Si es demasiado grande, intente enviar menos datos.

Esto puede suceder con executeAsyncScript , executeScript y executeScript (que utilizan executeScript ).

Editar por OP ...

Se callback({title:resp.title}) cambiando la callback(resp) a callback({title:resp.title}) , es decir, simplificando el objeto devuelto para que contenga solo los elementos que estoy realizando.

Tengo una prueba que cada vez que la ejecuto, lanza " UnknownError: error desconocido: se excedió el tamaño máximo de la pila de llamadas " .

Esta prueba llama a un método en uno de mis servicios que escribe en Google Drive.

La prueba que está fallando está llamando a mi función doDrive con "ui", lo que significa actualizar un elemento de Drive. Si cambio un solo carácter "ui" -> "ni", lo que significa crear un nuevo elemento de Drive, la prueba funciona. El código bajo prueba funciona bien en uso normal.

it(''should update a file'', function() { browser.executeAsyncScript(function(callback) { // get service var service=angular.element(document.getElementById(''ngapp'')).injector().get(''DriveQ'') // generate a title var title = ''title of file''; // call doDrive to create a new file service.doDrive({t:''ui'',id:''0B6B-RNrxsCu2Sll7JZTYy2aDA'', item:{title:title}}) .then(function (resp){ resp.originalTitle=title; callback(resp) }); }).then(function(resp) { expect(resp.title).toEqual(resp.originalTitle); }); });

Estoy usando el controlador web de Chrome directamente, y también tengo browser.ignoreSynchronization = true;