Estoy usando Playwright para pruebas de extremo a extremo. Uno de los escenarios consiste en comprobar el contenido de un pdf que se muestra en una ventana del visor de PDF, cuyo botón de descarga se ha ocultado para el usuario final. Verificar el contenido del pdf implica descargarlo, por lo que utilicé la opción force mencionada en la documentación de Playwright: https://playwright.dev/docs/api/class-page#page-click
La implementación utilizada es la siguiente:
innerFrameContent.click("//button[contains(@id, 'secondaryDownload')]", { force: true })(el xpath es correcto, lo verifiqué en el navegador Chrome y logré hacer clic en el elemento a través de la consola)
Desafortunadamente, recibo el siguiente registro de excepción de Playwright:
frame.click: Element is not visible =========================== logs =========================== waiting for selector "//button[contains(@id, 'secondaryDownload')]" selector resolved to hidden <button tabindex="54" title="Download" id="secondaryDown…>…</button> attempting click action waiting for element to be visible, enabled and stable forcing action element is visible, enabled and stable scrolling into view if needed ============================================================ ...Establecer la force en verdadero significa que desea omitir la verificación de accionabilidad. No significa que el click funcionará.
En este caso, si force se hubiera establecido en false , la acción habría fallado debido a un tiempo de espera, habría esperado a que el elemento fuera visible.
Con force en verdadero, no obtiene un tiempo de espera, pero el clic fallará porque no puede hacer clic en un elemento invisible.
Es posible que necesite encontrar otra forma de realizar la acción, ¿tal vez javascript?