Me enfrento a un problema cuando mis pruebas en el control remoto (CI+saucelabs o máquina local + control remoto de saucelabs) no son similares.
Tengo un sitio (por ejemplo, example.com)
Mi escenario consiste en los siguientes pasos:
dentro del paso 5: browser.getUrl() debería referirse a example2.com (en la ejecución local sin saucelabs es cierto), pero en saucelabs obtengo example.com.
env:
nodos: 16.13.1
npm: 8.1.2
libretas:
@wdio/cli: 6.10.11
@wdio/salsa-servicio: 6.3.6
Sin ver más código, es difícil decirlo, pero sospecho que el problema está relacionado con el tiempo o que Selenium está haciendo un almacenamiento en caché extraño.
(Sauce Labs actúa como un proxy en este caso; no hace nada más que enviar comandos a Selenium y transmitir las respuestas a su corredor de prueba).
La distancia de red entre un navegador de Sauce Labs y su SUT será diferente a la distancia entre sus navegadores locales y su SUT... especialmente si el SUT está ubicado dentro de su red corporativa. Eso me hace sospechar que el navegador de Sauce Labs puede tener que esperar más para que su SUT se cargue por completo, y el navegador mismo le dice a Selenium que todavía está en la página incorrecta.
Si agrega browser.waitUntil(browser.getUrl() === "desired_url", timeout) , con un tiempo de espera de "30000", ¿comienza a funcionar su prueba? Si es así, es un problema con el tiempo de carga del navegador y puede ver qué puede hacer para mejorar el tiempo de carga o simplemente dejar la espera en su lugar.
Sin embargo, bajaría el valor del tiempo de espera después del diagnóstico a algo más sensato.