Estoy trabajando con testCafe por primera vez y estoy tratando de escribir una prueba que haga clic en el nombre de un paciente específico en una lista de pacientes que se muestra.
El error que me sale es el siguiente:
No se puede obtener información sobre el nodo porque el selector especificado no coincide con ningún nodo en el árbol DOM.
| Selector('[data-cy=Nombre]')
Este es el bloque de código real:
test .meta({ code: '4.1', action: 'From Patient Summaries screen, click a patient name'. expected: 'Should take user to the weekly Patient Overview screen' }) .page(url) ('4.1', async t => { await LoginPageObject.loginAsDoctor(); const patients = Selector('[data-cy=Patients]'); const settingsMenuItem = Selector('[data-cy=name]'); await t.expect(patients.visible).ok().click(patients); await t.expect(Selector('[data-cy=table-row-0]').visible).ok() await t.expect(settingsMenuItem.textContent) .contains("Charles Shetland") .click(settingsMenuItem); await VnVScreenshot(t, '4.1', fixtureName); }); Intenté hacer const settingsMenuItem = Selector('td [data-cy=Name]'); y .contains("Shetland,Charles") ya que así es técnicamente como aparece el nombre.
Pero sigo recibiendo el mismo error para Selector('td [data-cy=Name]') .
La forma en que se ve la jerarquía DOM es:
div table thead tbody tr tdEs difícil determinar la causa exacta del error sin una muestra. Sin embargo, encontré el código incorrecto en las siguientes líneas:
await t.expect(settingsMenuItem.textContent) .contains("Charles Shetland") .click(settingsMenuItem); Si desea hacer clic en un elemento con texto específico, debe usar el método withText : https://testcafe.io/documentation/402740/reference/test-api/selector/withtext
await t.click(settingsMenuItem.withText('Charles Shetland'))Si esto no ayuda, prepare una muestra que demuestre el problema.
Tenga en cuenta que puede usar la función de depuración experimental de TestCafe para ejecutar un selector en la consola IDE o Chrome Nodejs. Consulte el siguiente artículo para obtener más detalles: https://testcafe.io/documentation/402639/reference/command-line-interface#--experimental-debug
Entonces, la forma en que pude resolverlo fue con un poco de magia testCafe.
Lo que hice fue cambiar data-cy="Name" , a data-cy="call_Shetland Charles" .
No estaba seguro al principio, pero eso me permitió pasar de esto:
const settingsMenuItem = Selector('[data-cy=Name]');A esto:
const settingsMenuItem = Selector('[data-cy*=Charles]');Y testCafe pudo identificar en qué paciente quería que hiciera clic.