Tengo problemas para usar el selector para especificar una entrada html.
Quiero que Playwright identifique un CUADRO DE TEXTO de Whatsapp para que pueda usarlo, pero no hay una identificación, ni siquiera un elemento CSS que pueda especificar.
Al principio, intenté usar el comando detallado en DOC , obteniendo los elementos del sitio web.
<div title="Search text box" role="textbox" class="_13NKt copyable-text selectable-text" contenteditable="true" data-tab="3" dir="ltr"></div>
Pero no puedo especificar la búsqueda TEXTBOX para llenar, con el ejemplo:
element.fill("contact name")
No sé si esto es un problema de sintaxis. ¿Hay otra forma de especificar este elemento?
El problema es que estos no son elementos de texto o de entrada, sino div s, cuyo HTML interno se cambia al escribir. Puede comprobarlo abriendo WhatsApp en el navegador, abriendo las herramientas de desarrollo y escribiendo algo en el campo.
Puede identificar esos divs a través del atributo de title
, ya que parecen ser únicos: //div[@title="Search text box"]
Playwright no puede cambiar el HTML interno de un div
, pero puede hacerlo a través de Javascript, que permite que Playwright evalúe.
El Javascript sería (puede evaluar eso en la consola de herramientas de desarrollo):
document.querySelector('div[title^=\'Search text box\']').innerHTML = 'contact name';
Para evaluar esto desde su código python:
page.evaluate('() => document.querySelector('div[title^=\'Search text box\']').innerHTML = 'contact name'')
Consulte la documentación para obtener más detalles: https://playwright.dev/python/docs/evaluating