Estoy usando Autoit para cargar archivos en mi aplicación web. Estoy planeando integrar selenio y autoit como se menciona en https://www.guru99.com /use-autoit-selenium.html

Mi problema En este momento es cuando hago clic en el botón de carga en el título de la ventana de carga de Chrome, viene como "Abrir" y en el título de Firefox se acerca a "Subir archivo". Por lo tanto, mi pregunta es, existe de alguna manera en Autoit para encontrar el título de la ventana usando diferentes valores. I.E. "Abrir" o "Subir archivo"

Aquí está mi código para subir el archivo en Chrome

WinWait("Open", "", 60)
WinActivate("Open")
ControlFocus("Open","","Edit1")
ControlSetText("Open","","Edit1", "C:\abc.war")
ControlClick("Open","", "Button1")

Aquí está mi código para cargar el archivo en Firefox

WinWait("File Upload", "", 60)
WinActivate("File Upload")
ControlFocus("File Upload","","Edit1")
ControlSetText("File Upload","","Edit1", "C:\abc.war")
ControlClick("File Upload","", "Button1")
0
user3744631 25 jun. 2019 a las 20:32

1 respuesta

La mejor respuesta

Puede usar expresiones regulares para encontrar la ventana deseada:

Opt("WinTitleMatchMode", 4)

$handle = WinGetHandle("[REGEXPTITLE:(?:Open|File Upload)]")

;In case window was not found
If @error Then Exit

WinWait($handle, "", 60)
WinActivate($handle)
ControlFocus($handle,"","Edit1")
ControlSetText($handle,"","Edit1", "C:\abc.war")
ControlClick($handle,"", "Button1")

Sin embargo, esto todavía no es una forma muy robusta. Algunas otras sugerencias que podrían considerarse además:

  • Compruebe la clase de ventana. La ventana de carga es un cuadro de diálogo, por lo que su clase será #32770 de acuerdo con esta lista
  • Marque la ventana actualmente activa usando WinGetHandle("[ACTIVE]")
0
Javan 25 jun. 2019 a las 20:13