Hola Eduardo,
Compruebe por favor si el botón en su código HTML tiene el mismo ID que está buscando con document.querySelector.
Si este no es el caso, puede ser que el script esté cargando antes de que toda la página sea leída, en este caso usted puede intentar colocar el script después del body en el documento HTML.
Si quieres dejar tu scripten un documento separado del **HTML**, existe una función llamadawindow.onloadque puedes usar, como ejemplo te dejo estelink que te trae algunas soluciones.
Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios