UI Automation cómo manejar los eventos de carga de archivos

En UI Automation, a menudo nos encontramos las operaciones de carga de archivos. procesamiento de eventos de subida es una operación relativamente engorroso, haga clic en el control de carga, ya que Windows se abrirá una ventana para que el usuario seleccione un archivo, pero la ventana de Windows es un componente que no sea el navegador, por lo que el selenio por sí sola no puede hacer frente a esta ventana ventanas. Estamos aquí para hacer frente a algunas ideas, nos fijamos en el código HTML siguiente.

 

<Html>

<Head>

<Meta http-equiv = "Content-Type" content = "text / html; charset = gb2312" />

<Title> test </ title>

<Script language = "javascript">

función toAlert ()

{

alert ( "hola continuar ...");

}

 

</ Script>

</ Head>

<Body>

<Form>

<Table>

 

<Tr>

 

<Td>

<Input name = tipo "archivo" = "archivo" />

</ Td>

 

</ Tr>

 

</ Table>

</ Form>

</ Body>

</ Html>

 

Abrir con el bloc de notas ++, se guarda como un archivo autotest.html, después de la apertura, solamente un botón de subida, nos fijamos en cómo manejar la carga eventos.

 

 

 

1

 

llamada directa viene selenio SendKeys operar tendrá que cargar una ruta de archivo pasó directamente en el control de carga.

 

2.Import Org.openqa.selenium.By;
Importación org.openqa.selenium.WebDriver;
Importación org.openqa.selenium.chrome.ChromeDriver;
/ **
* la Descripción:
* el autor: Chrisma
* una Fecha: 15/05/2019
* /
testupload2 public class {
public static void main (String AGS []) throws InterruptedException {
// inicializar el WebDriver
la nueva WebDriver nuevo controlador ChromeDriver = ();
// abrir el local HTML
( "archivo driver.get: /// D: / UI / autotest1.html ");
// la ruta de acceso al archivo se pasa al control de carga de archivos
driver.findElement (By.name (" archivo ") D) Sendkeys (.": \ llamado text.txt en el ");
// esperar a ver los resultados de
rosca .sleep (10000);
// Cerrar el WebDriver
driver.quit ();
}
}

 

 

Este enfoque puede resolver la mayor parte de la operación de carga, pero por alguna entrada de la caja de carga prohibido no puede funcionar, y esta vez vamos a considerar otras opciones.

 

 

 

2

 

Para que no se puede entrar, podemos considerar AutoIT a cargar.

AutoIt v3 es la última versión, que es un software gratuito similar al BASIC lenguaje de script, el cual está diseñado para un funcionamiento automatizado (interfaz gráfica de usuario) en Windows GUI. Se implementa utilizando una combinación de tareas automatizadas por pulsaciones de teclas que simulan, movimientos del ratón y de la ventana / control.

Página oficial: https://www.autoitscript.com/site/

AutoIt descargarse desde el sitio web e instalar, la instalación es directorios completos en el menú podrá ver la siguiente figura:

 

 

AutoIt de Windows ventanas de información para ayudar a identificar la información de control.

Compilación de secuencias de comandos AutoIt to.exe para generar el archivo ejecutable EXE.

Ejecutar secuencia de comandos para ejecutar script de AutoIt.

AutoIt SciTE Editor de secuencias para la escritura de guiones.

Abrimos la página HTML y pulse el botón de carga:

 

 

Aquí nos fijamos en cómo hacer frente a esta subida AutoIT.

• Al abrir AutoIT ventana de información y, a continuación, haga clic en la herramienta de búsqueda, no suelte el botón izquierdo, como el ratón en el tipo de vista, mueva el ratón a las necesidades de la caja de control de carga de archivos para identificar el botón de liberación.

 

Después de identificar el objetivo de toda la información se muestra en las ventanas de información AutoIT

Después de identificar el título de la ventana es "abierto", el título de la Clase como "# 32770."

caja de entrada de nombre de archivo de clase es "Editar", Instancia "1", por lo ClassnameNN como "Edit1".

clase de botón Abrir como "botón", Instancia "1", por lo ClassnameNN como "Button1".

Abrimos SciTE Editor de secuencias de comandos, y luego rellene el siguiente código:

 

; ControlFocus ( "título", "texto", del control) Edit1 = Editar ejemplo 1

ControlFocus ( "abierto", "", "Edit1")

 

; Espere 10 segundos para que aparezca la ventana Subir

WinWait ( "[Clase: # 32770]", "", 10)

 

; Establecer el nombre del archivo textmargin: 0px; padding: 0px; max-width: 100%; cuadro de dimensionamiento: frontera-box! important; desbordamiento-wrap: break-palabra! important; Limpia los dos; min-altura: 1 em; color: rgb (51, 51, 51); font-family: sistema -apple-fuente, el sistema de interfaz de usuario, "Helvetica Neue", "Pingfang SC", "Hiragino Sans GB", "Microsoft YaHei interfaz de usuario", "Microsoft YaHei", Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: left; text-indent: 39pt; ">

ControlSetText ( "abierto", "", "Edit1", "D: est.txt")

 

El sueño (2000)

 

; Clickmargin: 0px; padding: 0px; max-width: 100%; cuadro de dimensionamiento: frontera-box! important; desbordamiento-wrap: break-palabra! important; Limpia los dos; min-altura: 1 em; color: rgb (51, 51, 51); font-family: sistema -apple-fuente, el sistema de interfaz de usuario, "Helvetica Neue", "Pingfang SC", "Hiragino Sans GB", "Microsoft YaHei interfaz de usuario", "Microsoft YaHei", Arial, sans-serif; font-size: 17px; letter-spacing: 0.544px; text-align: left; text-indent: 39pt; ">

ControlClick ( "Open", "", "Button1");

 

 

La secuencia de comandos después SciTE Editor de secuencias de comandos para guardar, ventana de carga abierta, seleccione Herramientas> ir en SciTE Editor de secuencias de, para comprobar si los archivos se pueden cargar.

Confirmar que el script se ejecuta correctamente, guardar este script en Script.au3, y luego abra la to.exe Compilar Script, convertir archivos a Script.au3 SCRIPT.EXE:

 

Esta vez, abrir los controles de carga de archivos, haga doble clic en el archivo SCRIPT.EXE, se puede ver el evento de carga de archivos se ha procesado correctamente.

A continuación, es el uso de Java para llamar al archivo EXE:

org.openqa.selenium.By importación;
Importación org.openqa.selenium.WebDriver;
Importación org.openqa.selenium.chrome.ChromeDriver;
Importación java.io.IOException;
/ **
* la Descripción:
* el autor: Chrisma
* una Fecha: 2019 -05-15
* /
testupload2 public class {
public static void main (String AGS []) throws InterruptedException {
// inicializar el WebDriver
la nueva WebDriver nuevo controlador ChromeDriver = ();
// abrir el local HTML
driver.get ( "file: /// D: / UI / autotest.html ");
// haga clic en el botón seleccionar archivo
driver.findElement (By.name (" archivo ")) el clic () ;.
// conjunto de espera de 3 segundos
Thread.sleep (3000);
// getruntime.exec el método de ejecución de Java () del módulo puede ser llamado programa exe y ejecutado.
EXE = Runtime.getRuntime el tiempo de ejecución ();
el try {
STR = cadena de caracteres "D: //Script.exe";
.exe // Ejecuta la posición especificada
exe.exec (STR);
} el catch (IOException e) {
System.out.println ( "Error La RUN a EXE") ;
e.printStackTrace ();
}
// espera para ver los resultados de
la Thread.sleep (10000);
// Cerrar el WebDriver
driver.quit ();

}
}

 

Con AutoIT también tiene sus propias limitaciones, como sólo en el sistema Windows, si desea migrar a otros sistemas, hay que hacer referencia a otras formas.

 

3

 

Si usted quiere tratar con sistemas que no sean Windows para cargar, podemos hacer frente en forma de Java puro, esta vez, tenemos que utilizar este robot de clase en el flujo del proceso de la siguiente manera: Abrir el archivo de carga de control -> archivo en el disco camino a través de robot copia pastosa en (archivo cuadro de entrada cursor predeterminado requerido enfoque) -> pulse Intro, el botón OK para que aparezca el gatillo, se completa el proceso de carga de archivos

 

 

 

4

 

Código es el siguiente:

org.openqa.selenium.By importación;
Importación org.openqa.selenium.WebDriver;
Importación org.openqa.selenium.chrome.ChromeDriver;
Importar en java.awt * ;.
importación con java.awt.datatransfer.StringSelection;
Importar en java.awt. event.KeyEvent;
/ **
* la Descripción:
* el autor: Chrisma
* una Fecha: 05/15/2019
* /
testUpload public class {
public static void main (String AGS []) throws InterruptedException, de AWTException {
// inicializar el WebDriver
el controlador WebDriver = ChromeDriver nuevo nuevo ();
// abrir el local HTML
driver.get ( "file: /// D: / UI / autotest.html");
// especificar la ruta de acceso al archivo de carga
sel StringSelection = new StringSelection ( "D : \ test \ test1.txt ");
// copiar la ruta del archivo de imagen en el portapapeles
Toolkit.getDefaultToolkit () getSystemClipboard () setContents (SEL, null); ..
System.out.println ( "Selección" SEL +);
// haga clic en el botón Cargar
driver.findElement (By.name ( "archivo") ) clic. ();
// Crear una nueva clase de objeto Robot
Robot Robot Robot nuevos nuevos = ();
la Thread.sleep (1000);
// pulse Intro
robot.keyPress (KeyEvent.VK_ENTER);
// liberación del carro
robot.keyRelease ( KeyEvent.VK_ENTER);
// + V presionando el CTRL
robot.keyPress (KeyEvent.VK_CONTROL);
robot.keyPress (KeyEvent.VK_V);
// + V suelte el CTRL
robot.keyRelease (KeyEvent.VK_CONTROL);
robot.keyRelease (KeyEvent .VK_V);
Thread.sleep (1000);
// pulse el Introduzca la Introduzca
robot.keyPress (KeyEvent.VK_ENTER);
robot.keyRelease (KeyEvent.VK_ENTER);
// esperar a ver los resultados de
la Thread.sleep (10000);
// Cerrar el WebDriver
driver.quit ();
}
}

 

primero vamos a tratar con la carga de archivos aquí, espero que usted puede dar a ampliar su forma de pensar, nos vemos la próxima vez.

Autor: Chris Testfan

Fuente: micro-canales número público: software automatizado Plataforma de la prueba

Copyright: bienvenido a imprimir, sino que debe indicar la fuente y da enlaces a artículos en la posición aparente de la página del artículo

 

Supongo que te gusta

Origin www.cnblogs.com/testfan2019/p/12531710.html
Recomendado
Clasificación