Intenté apuntar a lo siguiente, pero parece que no puedo hacer que funcione. el error que me sale es
Error: No se puede hacer clic en el nodo o no es un HTMLElement.
const btn = await page.$x(//button[contains(., 'My Button')]) await btn[0].click() <div> <button> <translate original="My Button">My Button</translate> </button> </div>Si realmente desea la coincidencia de subcadenas (por ejemplo, todo "My Button" , "Not My Button" y "My Buttonless Shirt" ), use contains() como muestra @Prophet .
Por otro lado, si simplemente desea abstraer los espacios en blanco (junto con cualquier elemento que envuelva el texto de destino), use normalize-space() :
//button[normalize-space() = 'My Button'] Esto selecciona el elemento de button cuyo valor de cadena normalizado por espacio es exactamente 'My Button' .
En vez de
//button[contains(., 'My Button')]Probar
//translate[contains(., 'My Button')]O tal vez
//*[local-name()='translate' and contains(., 'My Button')]