Como encontrar las coordenadas de pixel en tu pantalla

Necesitas la posicion X/Y exacta de un pixel y la necesitas ahora -- quizas para un script de automatizacion, quizas para alinear un elemento de interfaz, quizas para reportar un bug con pasos de reproduccion precisos. Sea lo que sea que te trajo aqui, esta pagina cubre todos los metodos practicos: herramientas del sistema, comandos de terminal, DevTools del navegador, y un selector en vivo que puedes probar sin instalar nada.

Abrir la herramienta completa de coordenadas
Mueve el raton aqui -- las coordenadas se actualizan en vivo
0, 0
0
0
0
0

Demo rapida: selector de coordenadas

El cuadro de arriba es interactivo. Mueve el raton sobre el y veras cuatro valores actualizarse en tiempo real: X e Y miden desde la esquina superior izquierda de toda tu pantalla, mientras que X relativa e Y relativa miden desde la esquina superior izquierda del propio cuadro de demostracion.

Esta distincion -- coordenadas de pantalla frente a coordenadas relativas al elemento -- es la fuente mas comun de confusion cuando alguien empieza a trabajar con posiciones de pixel. Las coordenadas de pantalla te dicen donde esta algo en el monitor. Las relativas te dicen donde esta dentro de una ventana o elemento concreto.

Consejo practico: Si escribes un script de automatizacion que necesita hacer clic en un boton, casi siempre querras coordenadas de pantalla. Si estas construyendo una aplicacion web, normalmente querras coordenadas relativas (lo que el navegador llama offsetX/offsetY).

Windows: PowerShell y mas

Windows no incluye ninguna herramienta que muestre coordenadas visibles. No hay ninguna aplicacion integrada que siga tu cursor e imprima numeros X/Y. Tienes tres opciones reales.

Opcion 1: PowerShell + API de Win32 (listo para copiar)

Usa la misma funcion GetCursorPos que toda aplicacion de Windows usa internamente, por lo que las coordenadas que obtienes son pixeles fisicos de pantalla. Pega esto en una ventana de PowerShell:

Add-Type @"
using System;
using System.Runtime.InteropServices;
public class User32 {
    [StructLayout(LayoutKind.Sequential)]
    public struct POINT { public int X; public int Y; }
    [DllImport("user32.dll")]
    public static extern bool GetCursorPos(out POINT lpPoint);
}
"@
while ($true) {
    $p = New-Object User32+POINT
    [User32]::GetCursorPos([ref]$p)
    Write-Host "`rX: $($p.X)  Y: $($p.Y)" -NoNewline
    Start-Sleep -Milliseconds 100
}

Mueve el raton y observa los numeros. Pulsa Ctrl+C para detener.

Aviso de escalado DPI: En Windows 10 y 11 con escalado superior al 100%, GetCursorPos devuelve coordenadas en pixeles fisicos. Si tu script hace clic dentro de un navegador, el navegador puede usar pixeles CSS. Esta discrepancia es la causa numero uno de clics de automatizacion que caen en el lugar equivocado.

Opcion 2: Snipping Tool (para lecturas rapidas)

La herramienta de recorte no muestra coordenadas directamente, pero cuando inicias un recorte, la cruceta muestra su posicion de pixel actual en una pequena etiqueta. Pulsa Win + Shift + S para abrirlo.

Opcion 3: Python con PyAutoGUI

Instala con pip install pyautogui y luego:

import pyautogui, time
while True:
    x, y = pyautogui.position()
    print(f"\rX: {x}  Y: {y}", end="", flush=True)
    time.sleep(0.1)

Para mas detalle sobre PyAutoGUI, consulta nuestra guia de coordenadas con PyAutoGUI.

macOS: Digital Color Meter y terminal

macOS viene mejor equipada que Windows para esta tarea. Tienes una utilidad integrada que muestra coordenadas en vivo.

Integrado: Digital Color Meter

Abre Spotlight (Cmd + Espacio) y escribe "Digital Color Meter". Esta aplicacion, en Aplicaciones / Utilidades, muestra la posicion del cursor en tiempo real en la parte inferior de su ventana. Es la forma mas rapida de obtener coordenadas en un Mac sin escribir codigo.

Consejo: Redimensiona la ventana del Digital Color Meter para que sea pequena y muevela a una esquina. Asi no bloqueara el area que intentas medir.

Terminal: Python + Quartz

El framework Quartz proporciona los mismos datos de coordenadas que usa el sistema operativo. Ojo: macOS mide Y desde la parte inferior de la pantalla, no desde arriba.

import Quartz, time
while True:
    loc = Quartz.CGEventGetLocation(
        Quartz.CGEventCreate(None))
    h = Quartz.CGDisplayPixelsHigh(
        Quartz.CGMainDisplayID())
    # Y de macOS es desde abajo; invertir a origen superior-izquierda
    print(f"\rX: {int(loc.x)}  Y: {int(h - loc.y)}",
          end="", flush=True)
    time.sleep(0.1)

Instala con pip install pyobjc-framework-Quartz.

Linux: xdotool y xwininfo

Linux tiene las mejores herramientas de linea de comandos para trabajo con coordenadas, en parte porque X11 fue disenado para ser programable desde el principio.

xdotool: lectura unica de coordenadas

Instala con sudo apt install xdotool y luego:

xdotool getmouselocation --shell
# X=1920
# Y=540
# SCREEN=0
# WINDOW=16777216

La opcion --shell formatea la salida como variables de shell:

eval "$(xdotool getmouselocation --shell)"
echo "Raton en $X, $Y pantalla $SCREEN"

Bucle de seguimiento en vivo

while true; do
    eval "$(xdotool getmouselocation --shell)"
    printf "\rX: %-5s  Y: %-5s" "$X" "$Y"
    sleep 0.1
done

Usuarios de Wayland: xdotool y xwininfo son herramientas de X11. En una sesion de Wayland pueden devolver ceros o fallar silenciosamente.

En el navegador: DevTools y JavaScript

Si buscas coordenadas dentro de una pagina web, no necesitas herramientas del sistema. El navegador te lo da todo mediante JavaScript.

Snippet para la consola de DevTools

Abre DevTools (F12 o Cmd+Option+I), ve a la pestana Console y pega:

document.addEventListener('mousemove', e => {
  console.clear();
  console.log('Screen:  ' + e.screenX + ', ' + e.screenY);
  console.log('Client:   ' + e.clientX + ', ' + e.clientY);
  console.log('Page:     ' + e.pageX + ', ' + e.pageY);
  console.log('Offset:   ' + e.offsetX + ', ' + e.offsetY);
});
PropiedadOrigenCon scroll?Caso de uso
screenX / screenYEsquina del monitor fisicoNoDeteccion multi-monitor, automatizacion OS
clientX / clientYEsquina del viewport del navegadorNoCanvas, posicionamiento de superposicion
pageX / pageYEsquina del documento completoSiPosicion absoluta del documento con scroll
offsetX / offsetYEsquina del elemento bajo el cursorSiInteraccion relativa al elemento

Lo que mas confunde: clientX/Y no cambia al hacer scroll, pero pageX/Y si.

Escalado DPI: por que tus coordenadas fallan

Si alguna vez escribiste un script que funciona en un ordenador pero falla por unos pixeles en otro, el escalado DPI es casi seguro el culpable.

Las pantallas modernas suelen usar un factor de escalado superior al 100%. Una pantalla 4K al 150% reporta menos pixeles logicos que fisicos. El problema: diferentes capas del sistema pueden reportar coordenadas en unidades distintas.

Solucion: Comprueba window.devicePixelRatio en la consola del navegador. Si devuelve 1.5, multiplica las coordenadas CSS del navegador por 1.5 para obtener pixeles fisicos. Ve nuestra guia de escalado DPI para mas detalle.

Multiples monitores y coordenadas negativas

En un sistema multi-monitor, la esquina superior izquierda del monitor principal siempre es (0, 0). Los monitores secundarios extienden el plano de coordenadas. Si tu segundo monitor esta a la izquierda del principal, sus coordenadas son negativas.

Posicion del monitorRango de coordenadasEjemplo
Principal (centro)0 a +ancho, 0 a +alto0,0 a 1920,1080
Izquierda del principal-ancho a -1-1920,0 a -1,1080
Derecha del principal+principal a +(prin+sec)1920,0 a 3840,1080
Encima del principal-alto a -1 (eje Y)0,-1080 a 1920,-1

Analisis completo en nuestra guia de coordenadas multi-monitor.

Tabla comparativa de metodos

MetodoPlataformaPrecisionProgramable?Ideal para
PowerShell + GetCursorPosWindowsExacta (px fisico)SiScripts de automatizacion
Snipping ToolWindowsAproximadaNoEstimacion visual
PyAutoGUITodasExactaSiAutomatizacion multiplataforma
Digital Color MetermacOSExactaNoLecturas rapidas
Python + QuartzmacOSExactaSiScripts de Mac
xdotoolLinux (X11)ExactaSiScripts de shell
DevTools ConsoleNavegadorExacta (px CSS)SiDesarrollo web
Selector online (esta pagina)NavegadorExactaNoLecturas sin instalar nada

Preguntas frecuentes

Por que mis coordenadas difieren entre dos ordenadores con la misma pantalla?

Casi siempre es el escalado DPI. Dos pantallas 1920x1080 pueden dar coordenadas distintas si una esta al 125% y la otra al 100%. Comprueba window.devicePixelRatio en el navegador.

Puedo obtener coordenadas en un dispositivo tactil?

Si. Los eventos tactil proporcionan touches[0].clientX y touches[0].clientY, que funcionan igual que las coordenadas del raton.

Puedo obtener coordenadas de un elemento concreto en vez del cursor?

Si. En el navegador usa element.getBoundingClientRect(). Para apps de escritorio, las APIs de accesibilidad pueden enumerar elementos sin necesitar coordenadas de pixel.

Cual es la diferencia entre pixeles logicos y fisicos?

Los pixeles fisicos son los puntos reales del hardware. Los logicos (o pixeles CSS) son una abstraccion para pantallas de alta DPI. Al 100% son identicos; al 200%, un pixel logico equivale a un bloque de 2x2 pixeles fisicos. Ve nuestra guia de pixeles fisicos vs logicos.

Hay un atajo de teclado para mostrar coordenadas en Windows?

No existe uno integrado. Lo mas cercano es la cruceta del Snipping Tool (Win + Shift + S). Puedes asignar un atajo al script de PowerShell con AutoHotkey.

Volver a la herramienta de coordenadas