es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Selenium: ¿reutilizar la sesión del navegador existente en lugar de abrir nuevas ventanas usando PowerShell?

Estoy buscando una forma de conectarme con un sitio existente en Microsoft Edge utilizando PowerShell y poder dejarlo abierto durante todo el día en la computadora del usuario para utilizarlo varias veces al día. La URL a la que el código se está dirigiendo es una aplicación web en la que registran información recopilada sobre un proyecto en el que están trabajando. Así es como se registra su producción para que los supervisores puedan ver cuánto hacen al día. Encontré una solución en YouTube que me permite abrir la página de inicio de sesión del sitio. Pero, una vez que inician sesión, mi código mostrará “Sitio duplicado o actualizado” en lugar de permitir que el usuario realice la misma tarea que realizó la última vez que se ejecutó el script. Esto es lo que tengo:

$ScriptPath = "C:\Users\lpeder6\Documents\PowerShell\Selenium"

Add-Type -Path "$ScriptPath\WebDriver.dll"

$Edge = New-Object OpenQA.Selenium.Edge.EdgeDriver

$Edge.Navigate().GoToUrl('http://omega2010.com')

Todo el asesoramiento que he encontrado está destinado a Python, C# y otros lenguajes de programación. Estoy buscando una versión de PowerShell de esto. Según lo que he visto, necesito obtener el identificador de la ventana y luego usarlo cuando navego a la URL. Quiero decir que esto está cerca, pero no estoy seguro de cómo implementarlo:

Get-Process -Name '*edge*' | Where-Object { $_.MainWindowHandle -gt 0 }

También estoy intentando utilizar el siguiente código, pero una vez que llego a WindowHandles, no estoy seguro de qué usar para reutilizar el identificador al navegar a la URL.

$Handle = $Edge.WindowHandles.[numerous options, but unsure which to use]
$Edge.Navigate().GoToUrl($Handle)

Cualquier consejo o recursos que me indiquen en la dirección correcta serán muy apreciados. Intenté hacer la misma pregunta en el SQA Stack Exchange, pero dijeron que debería preguntarse aquí ya que no creen que sea “prueba”. Considero que esto es una prueba ya que la solución aún no está en producción.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Solución de PowerShell para conectarse a un sitio existente en Microsoft Edge

    Para conectarse a un sitio existente en Microsoft Edge utilizando PowerShell y dejarlo abierto todo el día en la computadora de un usuario para usarlo varias veces al día, prueba lo siguiente:

    $ScriptPath = "C:\Users\lpeder6\Documents\PowerShell\Selenium"
    Add-Type -Path "$ScriptPath\WebDriver.dll"
    $Edge = New-Object OpenQA.Selenium.Edge.EdgeDriver
    $Edge.Navigate().GoToUrl('http://omega2010.com')
    

    Este código abrirá Microsoft Edge y navegará a la URL especificada. Sin embargo, cuando el usuario inicie sesión, el script mostrará “Sitio duplicado o actualizado” en lugar de permitirles realizar la misma tarea que hicieron la última vez que se ejecutó el script.

    Para solucionar este problema, necesitas obtener el identificador de la ventana y usarlo al navegar a la URL. Puedes hacerlo de la siguiente manera:

    $Handle = (Get-Process -Name 'MicrosoftEdge').MainWindowHandle
    

    Este código recuperará el identificador de la ventana de Microsoft Edge. Luego puedes usar este identificador para navegar a la URL e interactuar con el sitio:

    $Edge.SwitchTo().Window($Handle) | Out-Null
    $Edge.Navigate().GoToUrl('http://omega2010.com')
    

    Al llamar al método SwitchTo().Window() y pasarle el identificador, podrás navegar a la URL y realizar las tareas necesarias.

    Espero que esto te ayude a resolver tu problema. ¡Avísame si tienes alguna otra pregunta o necesitas asistencia adicional!

Comments are closed.