domingo, 27 de abril de 2025

Envio de SMS gratuitos

Buenas lectores.

Estas son plataformas dedicadas para emitir SMS´s (Ud. es el emisor del mensaje):


SMS Gang

Uno de los mejores sitios de mensajes privados es SMS Gang, que está en la parte superior de la lista porque puede averiguar dónde estás al instante y te permite enviar un SMS desconocido a cualquier código PIN. Para enviar un mensaje, debes ingresar tu nombre, el número de teléfono del destinatario y tu mensaje. Haz clic en el botón "Enviar SMS" y tu mensaje se enviará de inmediato.


SeaSms

Con SeaSms, no tienes que registrarte y puedes enviar mensajes de texto a más de 250 países sin que te rastreen. También puedes compartir archivos, películas y fotos. De hecho, si añades un archivo Excel y cambias los campos, puedes enviar muchos correos electrónicos por tan solo 20 dólares. Uno de los beneficios es que puedes enviar SMS y MMS a muchos números de teléfono diferentes. Lo mejor es que los registros de entrega se pueden utilizar para encontrar mensajes que se enviaron de forma anónima.


Sharpmail

Sharpmail también es uno de los mejores sitios web porque te permite enviar mensajes de texto falsos y cubre todos los servicios de SMS del mundo. Puedes mantener tu libreta de direcciones actualizada en el sitio web, que también tiene una bandeja de salida de SMS donde puedes almacenar tus registros y registros de mensajes. Sin embargo, si quieres utilizar Sharpmail, primero tienes que registrarte en el sitio y luego utilizar sus servicios gratuitos.


También puedes enviar SMS Unicode con este servicio. Además, puedes enviar SMS a números de otros países de inmediato. Otros beneficios son crear tu propio número de teléfono falso y enviar mensajes de texto sin ser rastreado. Para enviar un mensaje SMS anónimo, puedes escribir hasta 160 caracteres.


Anonymous Text

Hay muchas personas en los EE. UU. que usan Anonymous Text, un servicio de mensajes de texto anónimos que se centra en la privacidad. Es extremadamente conveniente enviar mensajes de texto a través de este sitio web de mensajes anónimos. Una vez que envías un mensaje, puedes rastrear a dónde va. Puedes enviar mensajes de texto a cualquier persona en el mundo sin tener que registrarte.

Sin embargo, no olvides incluir el código de país si quieres que tu mensaje se envíe de inmediato. La interfaz de usuario del sitio es muy fácil de usar y muy simple. Puedes establecer una hora y fecha para enviar mensajes. Además, puedes enviar tantos mensajes de texto como quieras, con o sin emojis.


ArmSMS

ArmSMS es otra forma sencilla y privada de enviar mensajes de texto. Puedes compartir tu número de teléfono con el sitio web ArmSMS y enviar un SMS a cualquier número. ArmSMS te permite enviar mensajes de texto de hasta 160 caracteres, codificados en latín o Unicode. Puedes elegir entre una lista de mensajes y grupos, como amistad, divertidos, amor, Navidad y Año Nuevo.


TxtDrop

TxtDrop es el último sitio web secreto de mensajes anónimos para personas que quieren algo gratis. Las personas en los EE. UU. y Canadá pueden enviar mensajes de texto en el sitio, y tus palabras llegan a la otra persona rápidamente. Para enviar un mensaje, solo tienes que escribir tu dirección de correo electrónico, el número de teléfono móvil de la persona a la que quieres enviar el mensaje y tu mensaje.

No tienes que registrarte para utilizar el sitio y, además, es gratuito. Además, tiene un diseño sencillo que promete un uso rápido.


Text'em

Text'em puede ser la mejor aplicación para ti si quieres enviar a tu amigo una cantidad ilimitada de mensajes de broma. Para empezar a enviar mensajes de texto sin que te rastreen, puedes elegir un servicio de red en los Estados Unidos. Otra gran característica es que puedes detener los números si recibes mensajes de texto no deseados.

No hay ninguna limitación relacionada con la cantidad de caracteres o palabras. Además, la interfaz es sencilla y apta para principiantes. Sin embargo, esta aplicación solo funciona en los EE. UU. No olvides que necesitas saber e identificar el operador de telefonía móvil de la persona a la que quieres enviar un SMS anónimo.


SMSflick

Otro sitio web de mensajes anónimos de esta lista es SMSflick. Es una aplicación de mensajes de texto gratuita y fácil de usar que te permite enviar un mensaje de texto sin revelar tu nombre o identidad. Puedes enviar mensajes de texto a cualquier número de teléfono del mundo de forma gratuita y sin dar tu nombre. Sin embargo, tienes que registrarte para obtener una cuenta premium antes de poder usar su servicio de mensajes de texto grupales. Esto es lo único malo de esta página.


Fuente:

https://underc0de.org/foro/hacking/verificaciones-por-sms-gratuitas-numeros-de-moviles-virtuales-parte-2/

Recibir mensajes en números temporales

Buenas lectores.

Hay ocaciones que necesitamos validar que nuestros componentes envién mensajes a los movíles, en este caso hay una lista de servicios gratis/pagos que puedes tener en cuenta para tus pruebas: 


Receive an SMShttps://receive-a-sms.com

SMS Receive freehttps://smsreceivefree.com

Online SMShttps://sms-online.co

Receive SMS onlinehttps://smsreceiveonline.com

Get a free SMS numberhttps://getfreesmsnumber.com

Receive SMShttp://sms-receive.net

Receive SMS Online.NEThttps://www.receivesmsonline.net

Free SMS checkswww.freesmsverifications.com

SIM.NEThttp://7sim.net

HS3Xhttp://hs3x.com

Receive free SMShttp://receivefreesms.com

Receive free SMS.NEThttp://receivefreesms.net

Receive SMS Online.INhttp://receivesmsonline.in

Receive SMS onlinehttps://receive-sms-online.com

See SMShttps://www.smsver.com

Groovlhttps://www.groovl.com

SMS.SELLAITEhttp://sms.sellaite.com

Send SMS nowhttp://www.sendsmsnow.com

Receive SMS online.EUhttp://receivesmsonline.eu

Proovl
https://www.proovl.com/numbers

Anon SMShttps://anon-sms.com

Hide my numbershttp://hidemynumbers.com

Pingerhttps://www.pinger.com

Free online phonehttps://www.freeonlinephone.org

5SIMhttps://5sim.net

Capture SMShttps://catchsms.com

SMS Gethttp://smsget.net

1S2Uhttps://1s2u.com

Receive SMShttp://getsms.org

Vrittyhttps://virtty.com

Text anywherehttp://www.textanywhere.net

Receive SMS online.MEhttp://receivesmsonline.me

Temporary emailshttps://www.temp-mails.com

Purchase virtual numberhttp://www.virtualnumberbuy.com

Free Receive SMS onlinehttp://freereceivesmsonline.com

NDTAN SMShttps://sms.ndtan.net

SMS Listenhttps://smslisten.com

Free virtual SMS numberhttps://freevirtualsmsnumber.com

SMS Tibo
https://smstibo.com

Receive SMS numberhttps://receivesmsnumber.com

Free SMS codehttps://freesmscode.com

Online SMS numbershttps://smsnumbersonline.com

SMS receptionhttps://smsreceiving.com

Trash Mobilehttps://es.mytrashmobile.com/nu

SMS MANhttps://sms-man.com/

SMS Poolhttps://www.smspool.net/


Tener en cuenta que los números son compartidos (no privados y perecederos).

Fuente:

https://underc0de.org/foro/hacking/verificaciones-por-sms-gratuitas-_-numeros-de-moviles-virtuales-parte-1/

domingo, 20 de abril de 2025

Explorando Inflact Instagram Viewer: Ver perfiles de instagram de manera anonima

Buenas lectores.

Este servicio permite a los usuarios visualizar perfiles públicos de Instagram de manera anónima, sin necesidad de iniciar sesión o revelar información personal. A continuación, exploraremos las características de su versión gratuita y las ventajas de su versión Pro, destacando su utilidad en el ámbito de la seguridad informática.

Practicidad de la Versión Gratuita

La versión gratuita de Inflact Instagram Viewer ofrece funcionalidades básicas pero efectivas:

  • Visualización Anónima: Permite explorar perfiles públicos sin dejar rastro, lo que es ideal para quienes desean mantener su privacidad.

  • Acceso Sin Cuenta: No es necesario tener una cuenta de Instagram para usar esta herramienta, lo que reduce riesgos de exposición.

  • Límites Diarios: Aunque tiene restricciones (como un límite de visualización de un perfil y cinco contenidos por día), es suficiente para usuarios ocasionales.

Esta versión es especialmente útil para profesionales de seguridad informática que necesitan analizar perfiles públicos sin comprometer su identidad o la de su organización.

Ventajas de la Versión Pro

Para quienes buscan capacidades avanzadas, la versión Pro de Inflact ofrece:

  • Visualización Ilimitada: Acceso sin restricciones a perfiles y contenidos públicos.

  • Descargas de Contenido: Posibilidad de guardar historias, publicaciones y otros elementos para análisis detallados.

  • Seguimiento y Análisis: Herramientas para rastrear seguidores, comentarios y me gusta, lo que puede ser crucial en investigaciones de seguridad.

  • Uso Multi-dispositivo: Acceso desde cualquier dispositivo, facilitando el trabajo remoto.

Por un costo mensual accesible, la versión Pro amplía significativamente las posibilidades de análisis y monitoreo, convirtiéndose en una herramienta indispensable para expertos en ciberseguridad.

Aplicaciones en Seguridad Informática

Inflact Instagram Viewer es particularmente relevante en el ámbito de la seguridad informática por varias razones:

  1. Análisis de Riesgos: Permite evaluar perfiles públicos para identificar posibles amenazas o actividades sospechosas.

  2. Protección de Identidad: Al operar de manera anónima, protege la identidad del usuario, lo que es esencial en investigaciones sensibles.

  3. Cumplimiento Ético: Al limitarse a contenido público, respeta las políticas de privacidad y evita violaciones éticas.

En resumen, Inflact Instagram Viewer combina practicidad y funcionalidad, ofreciendo soluciones tanto para usuarios casuales como para profesionales de la seguridad informática. Su capacidad para operar de manera anónima y su enfoque en la privacidad lo convierten en una herramienta valiosa en un mundo donde la seguridad digital es más importante que nunca. ¿Ya has probado alguna de sus versiones? ¡Comparte tu experiencia!


Link:

https://inflact.com/instagram-viewer/profile/

miércoles, 16 de abril de 2025

Como mejorar tu Thread.sleep en java y así evitar deuda técnica

Buenas lectores.

Vamos a dividir la espera de tiempo según la patron que estemos manejando: 


SIN PATRONES:

Podemos encontrar frecuentemente la línea

Thread.sleep(2000);

Esto hace que el robot espere 2 segundos. Es muy util cuando no tenemos objetos referencias como por ejemplo, esperar una carga de archivos que no tiene mensaje de confirmación, un refresco de un iframe para evitar que arroje errores de estados entre otros. Sin embargo, cuando pasamos el sonar nos arroja la siguiente deuda técnica:

"Thread.sleep" should not be used in tests

Si eres de las personas que no les gusta la deuda técnica o simplemente estas por mejorar tu código, aquí te mostraré como lo puedes hacer




POM (Page Object Model):

En POM es facil implementar una espera sin deuda técnica, en este caso vamos a usar Awaitility


import org.awaitility.Awaitility;

import org.awaitility.Durations;


Awaitility.await().pollDelay(Durations.TWO_SECONDS).until(() -> true);

Con esto hemos logrado mejorar el código y evitar la deuda técnica.


Cabe anotar que el pull máximo es de 1 minuto, si queremos superar ese tiempo la sentencia cambia a la siguiente forma:

Awaitility.await().atMost(2, TimeUnit.MINUTES).pollDelay(1, TimeUnit.MINUTES).until(() -> true);



Para tiempos mayores a 5 minutos se debe usar:

 Awaitility.await().with().pollInterval(Durations.ONE_SECOND).await().atMost(Durations.TEN_SECONDS).until(myFunction());


Screenplay:

En Screenplay debemos mantener el patron usando task para nuestro actor, para convertir la línea anterior a una task se hace lo siguiente:

actor.attemptsTo(Task.where("waiting for route destine selector",

a -> Awaitility.await().pollDelay(Durations.ONE_SECOND)

.until(() -> true))

);


Cabe anotar que si necesitas reutilizarla mejor la creas como una task independiente y la invocas.



Cordial saludo



Fuentes:
https://automatizaciondefuncionales.blogspot.com/2023/03/cambiar-el-threadsleep-para-no-tener.html

martes, 15 de abril de 2025

Imprimir el texto de un elemento desde la consola de chrome (chromedevtools)

 Buenas lectores.

En ocasiones nos encontramos con la necesidad de validar si el texto que tiene un elemento es precisamente el texto que vamos a usar en nuestros asserts. También puede suceder que tengamos varios elementos concatenados y que queramos validar cual es el elemento del texto que necesitamos en nuestra automatización, para esto podemos imprimir el texto desde el mismo navegador sin necesidad de estar ejecutando una automatización.


Para ello vamos realizar lo siguiente:

var elements = document.getElementsByTagName("blockquote");

for (var prop in elements)
{
  if(elements.hasOwnProperty(prop)) {
    console.log(elements[prop].innerHTML);
  }
}
Simplemente cambia el tagName por el que necesites. Cabe anotar que en la segunda referencia pueden revisar otras sentencias para buscar elementos.



Fuentes:

https://automatizaciondefuncionales.blogspot.com/2023/03/imprimir-el-texto-de-un-elemento-desde.html

Como dar click a un elemento desde la consola de chrome (chromedevtools)

 Buenas lectores.

Algunas veces queremos validar porqué nuestras automatizaciones no dan click sobre un elemento que se encuentra presente cuando validamos los informes o simplemente haciendo debug encontramos que está allí presente pero que el robot no es capaz de hacer click.


Una de las estrategias para validar que puede estar pasando es realizando click mediante la consola de chrome, esto nos permite validar que no sea un error del aplicativo y que sea necesario reportarlo a desarrollo.


Sentencia por js:

document.getElementById('button1').click();

Sentencia por jquery:

$('#button1').click()



Referencias:https://automatizaciondefuncionales.blogspot.com/2023/07/como-dar-click-un-elemento-desde-la.html

Como saber que versión de java necesito para correr algún proyecto

 Buenos días lectores.

Normalmente cuando agregamos alguna libreria a nuestro proyecto o simplemente cuando descargamos nuevamente un proyecto antiguo o nuevo a nuestro espacio de trabajo, nos encontramos con el siguiente error:

Class has been compiled by a more recent version of the Java Environment (class file version 53.0), this version of the Java Runtime only recognizes class file versions up to 52.0.

En tu caso puede variar el número de la versión, en todo caso cuando este mensaje de error se muestra es necesario saber que versión de java necesitamos descargar para ejecutar nuestro proyecto, para eso vamos a mirar la siguiente tabla:


49 = Java 5
50 = Java 6
51 = Java 7
52 = Java 8
53 = Java 9
54 = Java 10
55 = Java 11
56 = Java 12
57 = Java 13
58 = Java 14
59 = Java 15
60 = Java 16
61 = Java 17
62 = Java 18
63 = Java 19
64 = Java 20

Una vez revisada la versión que necesitamos, simplemente vamos a la configuración del proyecto o de la ejecución y seleccionamos el jdk que necesitamos: 



En este ejemplo estoy usando eclipse, pero el concepto aplica para cualquier IDE que estes usando.


Saludos.


Fuentes:https://automatizaciondefuncionales.blogspot.com/2023/08/como-saber-que-navegador-esta.html

Esperar a que un elemento tenga texto Playwright desde javascript

 Buenas tardes lectores.

Voy a seguir publicando algunas cositas sobre Playwright, esto porque veo que es una gran herramienta para llevar de la mano junto a SerenityBDD. En esta ocasión vamos a revisar de una manera sencilla como podemos esperar el texto de un elemento y no seguir el proceso hasta que tengamos el valor:

var idGeo: string | null = await page.textContent('#div_map');
  console.log(idGeo);

  while (idGeo === null || idGeo.length === 0) {
    idGeofence = await page.textContent('#div_map');
    console.log(idGeofence);
  }



Se puede observar lo siguiente:

Almacenamos de forma controlada el valor del texto que trae Playwright a la variable idGeo
Luego comparamos de forma controlada que sea null o vacía
Repetimos ciclo hasta que tengamos un valor y seguimos con la automatización.

Es todo, sencillo y funcional. Recuerden que falta controlar el ciclo para que no sea infinito.

Saludos cordiales.


Fuentes:

https://automatizaciondefuncionales.blogspot.com/2024/01/esperar-que-un-elemento-tenga-texto.html

Esperar a que un elemento desaparezca en Playwright (Manual)

 Buenas lectores.

En este post vamos a observar dos cosas, la primera como hacer un condicional o ciclo para que la automatización espere hasta que un elemento ya no sea visible y adicional observaremos como realizar un control a una acción sin que se detenga nuestra automatización:

 

let visible = await page.locator('#btn').isVisible();  
  while (visible) {    
    try {
    await page.locator('#btn').click({ timeout: 1000 });    
    } catch (error) {
      console.error('El elemento no se encontró o no se pudo hacer clic en él.');
    }
    visible = await page.locator('#btn').isVisible();
    console.log(visible);
  }  


Observamos lo siguiente:

Almacenamos en la variable visible el valor booleando que nos retorna si es visible o no.

Mientras es visible tratamos de dar un clic a un elemento, en caso que ya no sea visible por los milisegundos, al estar dentro del try nos retorna que ya no lo puede ver y sigue el proceso.

De esta manera tan simple podemos controlar y esperar que algunos controles que se resisten a seguir con las funciones normales que nos ofrece el framework se controlen.

Saludos.


Fuentes:

https://automatizaciondefuncionales.blogspot.com/2024/01/como-tener-un-condicional-en-playwright.html

Tiempo de espera muerto / estático / explicito en Playwright

 Buenas lectores.

En ocasiones necesitamos esperar un tiempo específico debido a que no contamos con alguna referencia o elemento que nos facilite seguir con el proceso. En estos casos usamos tiempos muertos los cuales no son buenos, nadie los quiere pero algunas veces son necesarios.


await page.waitForTimeout(1000);


Cabe anotar que el tiempo es en milisegundos como casi en todas las herramientas, en este caso es equivalente a esperar 1 segundo. Es decir, si quieres que espere 2 segundos sería 2000, 3 segundos = 3000.


Fuentes:

https://automatizaciondefuncionales.blogspot.com/2024/01/tiempo-de-espera-muerto-explicito-en.html

Elementos SVG y/o mapas con selenium en python

 Buenas lectores

Un reto muy interesante que se nos puede presentar es cuando tratamos de interactuar con elementos en un mapa o en un gráfico, normalmente los encontramos como SVG.

El resto consiste en que normalmente no encuentra los elementos a pesar de que hagamos correctamente el cambio al iframe donde se supone están los controles. Es algo complicado y puede llegar a frustrarnos.

Soluciones hay varias, pero hoy vamos a usar las mas comunes y mas estables.


Usando xpath:

//div[@id="map"]//*[name()="svg"]/*[name()="g"]

//div[@id="map"]//*[name()="svg"]/*[name()="g"]/*[name()="image"]


En muchas ocasiones no funciona el xpath, esto porque pareciera que los elementos no están en el DOM o por lo menos , no en el orden que los vemos ya construidos. Para esos casos podemos recurrir a CSS

En este ejemplo vamos a capturar todos los puntos del mapa y luego los recorremos pulsando click sobre cada uno de ellos:


from selenium import webdriver

driver.get("tu_url_aquí")

elements = driver.find_elements_by_css_selector('[id^="OpenLayers.Geometry.Point_"]')

for element in elements:

    element.click()


Con esto podemos interactuar con todos los elementos del mapa, recuerdo agregar un try y catch por cada click debido a que puede que encuentre elementos los cuales no sean interactuables.


Saludos


Fuentes:

https://automatizaciondefuncionales.blogspot.com/2024/02/como-interactuar-con-elementos-svg-yo.html

Como hacer click a un elemento escondido en Playwright

 Buenas lectores.

En la mayoria de frameworks que se usan para automatizar pruebas funcionales encontramos funciones que nos permiten realizar click forzados, esto es necesario cuando un elemento se encuentra oculto y necesitamos ejecutarlo. Normalmente esto no debería funcionar así puesto que un usuario no puede ver elementos ocultos pero... a veces es nuestra magía para poder simular a nuestro usuario final (enredado lo sé).


En todo caso, cuando necesitamos hacerlo usando js es cuando se complica un poco, sin embargo existe una funcion que simula el click y nos puede sacar de los apuros:


page.getByTestId('#id').dispatchEvent("click");


Cuando necesitamos pulsar un botón y este se resista pero es visible, podemos usar el force:


click("//button[contains(@id, 'secondaryDownload')]", { force: true })


Fuentes:

https://automatizaciondefuncionales.blogspot.com/2024/02/como-hacer-click-un-elemento-escondido.html

Que hacer cuando la librería Ensure de serenitybdd te comienza a molestar

 Buenas lectores.

Me he encontrado con casos particulares usando la librería Ensure en el IDE de IntelliJ, es posible que se presente en cualquier otro IDE por consiguiente antes de investigar la razón mejor hice una migración al assert para no tener problemas a futuro.

Podemos tener algo así:

jadcode.attemptsTo( Ensure.that(ElementLocated.by("#firstName")) .isDisplayed());


Lo podemos cambiar por lo siguiente:

theActorInTheSpotlight().should(

seeThat(Visibility.of(LocationForm.FIRST_NAME), is(true)));


Si quedamos que no este visible y usando softasserts, sería de la siguiente forma:


theActorInTheSpotlight().should(

seeThat(Visibility.of(LocationInfoWindowView.LBL_STATUS_LASTREPORT), is(false)),

seeThat(Visibility.of(LocationInfoWindowView.LBL_LASTREPORT), is(false)));


Se puede observar que migramos el código a una forma común que todo IDE puede interpretar, sin embargo quieres una solución sin hacer los asserts manuales simplemente actualiza el IDE, con eso funciona.

En caso que te guste mi solución, recuerda agregar las librerias y las importaciones:

import static net.serenitybdd.screenplay.GivenWhenThen.seeThat;

import static net.serenitybdd.screenplay.actors.OnStage.theActorInTheSpotlight;

import static org.hamcrest.CoreMatchers.*;

import net.serenitybdd.screenplay.questions.Visibility;


Saludos.


Fuentes:

https://automatizaciondefuncionales.blogspot.com/2024/02/que-hacer-cuando-la-libreria-ensure-de.html