Pregunta

Uso del elemento (por.model ()) Sintaxis para encontrar un campo y texto de entrada.

Elemento (por.model ('Sample_ad.ID')). Sendkeys ('Batman');

Obtiene la excepción de Chromedriver:

Stacktrace:
     Error: Timed out waiting for Protractor to synchronize with the page after 11 seconds
    at Error (<anonymous>)
==== async task ====
WebDriver.executeScript()
    at Protractor.waitForAngular (/Users/jon/dev/project_name/node_modules/protractor/lib/protractor.js:278:22)
    at Protractor.findElement (/Users/jon/dev/project_name/node_modules/protractor/lib/protractor.js:427:8)
    at Object.elementFinder.(anonymous function) [as sendKeys] (/Users/jon/dev/project_name/node_modules/protractor/lib/protractor.js:62:21)
    at null.<anonymous> (/Users/jon/dev/project_name/test/e2e/features/somedirectiveSpec.js:24:39)
    at /Users/jon/dev/project_name/node_modules/protractor/jasminewd/index.js:54:12
==== async task ====
    at null.<anonymous> (/Users/jon/dev/project_name/node_modules/protractor/jasminewd/index.js:53:12)
    at null.<anonymous> (/Users/jon/dev/project_name/node_modules/protractor/node_modules/minijasminenode/lib/async-callback.js:45:37)
    at Timer.listOnTimeout [as ontimeout] (timers.js:110:15)

No estoy seguro de por qué se está rompiendo, pero el transportador parece muy frágil ahora ... No tengo problemas con el objeto del navegador para encontrar elementos, texto de entrada, etc.

Cualquier ayuda sería apreciada

Editar: Si cambio la línea a la siguiente, soy capaz de interactuar con el campo de texto. navegador.driver.findelement (protractor.by.id ('sample_ad_id')). Sendkeys ('Batman');

Otros consejos

Esperemos que esto ayude a otros ...

Encontré esto en GitHub (ver Referencias enlace).El problema que creo es un script que no regresa, por lo que los envíos no funcionaban.Antes de interactuar con el DOM utilizando objetos de protractor (elemento, ptor, etc.), configure esta variable:

navegador.ignoresncronización= verdadero;

La razón por la que las siguientes obras se deben a que no se basa en las llamadas de Async, simplemente interactúa directamente con el DOM e inserta las llaves en el campo de entrada. navegador.driver.findelement (protractor.by.id ('sample_ad_id')). Sendkeys ('Batman');

La razón por la que mi llamada no funcionó ( creo ) es porque hubo una llamada de ASYNC que no regresó en el tiempo.
Elemento (por.model ('sample_ad.id')). Sendkeys ('Batman');

Referencias: https://github.com/angular/protractor/issues/325

Parece que su prueba está programando.El tiempo de espera predeterminado para el transportador es de 11 segundos.

Intente configurar un tiempo de espera diferente para esta prueba:

it('should override timeout', function() {
  // Timeout of 30 seconds.
  element(by.model('sample_ad.id')).sendKeys('batman');
}, 30000)

También puede anular el tiempo de espera para todas sus pruebas en el archivo de configuración del protractor.Consulte este archivo de configuración de muestra:

https://github.com/andresdominguez/Tractor-Meetup / Blob / Master / Protractor-config.js # l19

// Inside the protractor config file.
onPrepare: function() {
  // Override the timeout for webdriver.
  var ptor = protractor.getInstance();
  ptor.driver.manage().timeouts().setScriptTimeout(60000);
}

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top