Domine una descripción general de las funciones principales de las herramientas de Selenium (2)
Entonces, ¿cómo ubica el cuadro desplegable los elementos de la página? Ejemplo de Dom:
Entonces el método de posicionamiento y operación debe ser el mismo que el de la operación de cajas múltiples:
@test
void test_select() throws InterruptedException { p>
Elemento WebElement = controlador . buscar elemento(por . id(" selección de fruta "));
Seleccionar seleccionar = nuevo Seleccionar(elemento); >// Según diferentes formas de seleccionar el valor del cuadro desplegable.
Thread.sleep(2000);
seleccione .selectbyindex(2);
Thread.sleep(2000);
seleccione . selectby value(" naranja ");
Thread.sleep(2000);
select . la colección para imprimir todos los valores en el cuadro desplegable.
lista de opciones = seleccionar . get options();
for (opciones de WebElement: opciones){
System.out.println("Valor de radio de salida: "opción. gettext());
}
}
8. Domine el procesamiento de tres cuadros de advertencia, confirmación y aviso; estos tres cuadros emergentes windows No sorprende que esto sea manejado por la clase Alert.
9. Los principios y escenarios de uso de los tres modos de espera de Selenium: espera forzada, espera implícita y mecanismo de sincronización de tiempo explícito.
10, condición de espera de selenio, análisis del código fuente isEnabled()isSelected():
Por ejemplo, en algunos casos, es necesario esperar a que aparezca un elemento antes de poder operar. él. Lo que se necesita en este momento es esperar. ¿Qué tipo de espera es? Debe analizarse en función del escenario real:
//La siguiente operación es encontrar el elemento primero. Independientemente de la realidad o no, existe una condición, es decir, incluso si el elemento está oculto, todavía existe en el dom. Algunos elementos ocultos pueden no existir necesariamente en el dom. Si se encuentra el elemento, se informará una excepción. : NoSuchElementException.
@test
public void test_display() lanza InterruptedException {
WebElement El = driver . buscar elemento(por . id(" texto mostrado ") ) ;
System.out.println("Determine si se muestra el cuadro de entrada: " El . is display());
if(El . is display()){< / p>
el.sendKeys("Mostrado");
System.out.println("Haga clic en el botón Ocultar para ocultar el elemento");
buscar controlador. elemento (por .id ("ocultar cuadro de texto")).
click();
}
thread . sleep(3000);
WebElement ele = driver . ));
//Como sabe que la operación anterior se muestra de forma predeterminada y usted ingresó un valor, si se considera verdadero, significa mostrar, luego ingrese el contenido del texto y haga clic para esconder.
Si (!ele . is display()){
//Si está oculto, las siguientes operaciones muestran e ingresan el contenido.
controlador . buscar elemento (por . id(" show-textbox ")). Click();
System.out.println("Haga clic en el botón de visualización y se mostrará el elemento");
Ele.sendKeys("Abrir de nuevo"); p>
p>
}
thread .sleep(3000);
//Luego ocultar de nuevo
buscar elemento (por). id("ocultar -cuadro de texto")). Haga clic en ();
}
Recordatorio cálido: operación del elemento, evaluación del estado: isEnabled, evaluación de la visualización: visualización, evaluación de si es seleccionable: isSelected.
11. Operaciones del mouse: aplicaciones de clic, doble clic, clic derecho, entrada de teclado y combinación de teclas, siempre que el desarrollo front-end admita operaciones clave.
En la automatización web, no todas las operaciones del teclado son necesariamente compatibles y se requiere soporte de desarrollo front-end.
Importar org. open QA.selenium.keys; // Esta es la clase clave del marco de selenio.
//Envía una sola operación de tecla, solo el método sendKeys() del elemento.
findElement(By.id("kw ")). Tecla Enviar (tecla. Enter);
//Si es una combinación de teclas, como Control A.
String select=Keys.chord(Keys.Control, "a");
findElement(By.id("kw ")). sendKeys(select);
//Utilice la clase Acciones para manejar operaciones clave.
Importar org.openQA.selenium.interactions.actions;
Acciones acción = nueva acción (controlador);
action.keyDown(Keys.Control) . enviarClaves("a"). keyUp(tecla.control).
Ejecutar();
12. Necesita dominar los métodos y técnicas de ejecución de JavaScript. Clase JavascriptExecutor:
Importar org.
Importar org. abrir control de calidad. selenium. chrome. controlador chrome;
sistema. >
controlador = nuevo controlador de Chrome();
//Conversión forzada en sentido descendente
Ejecutor de JavaScript js = controlador (ejecutor de JavaScript);
13. Captura de pantalla: tome capturas de pantalla y guárdelas en formato de fecha.
Pensando: ¿Dónde estará escrito?
Por lo general, use el marco de prueba TestNG/junit y use la anotación @After, lo que significa tomar una captura de pantalla después de ejecutar cada caso de prueba, en lugar de después de ejecutar una clase de prueba, por lo que es necesario afirmar el resultado de la ejecución, después del error Tome capturas de pantalla, no capturas de pantalla aleatorias.
Prioriza los métodos para generar nombres de archivos:
/**
* Obtiene una cadena aleatoria como la longitud del nombre de archivo.
* @param length
* @return
*/
Cadena estática pública getRandomString(int length) {
StringBuilder sb = new StringBuilder();
caracteres de cadena = " 1234567890 qwertyuioplkjhgfdsazxcvbnmpoiuytrewqasdfghjklmnwcxz ";
for(int I = 0; i lt length; i ) { p >
int index =(int)(matemáticas. aleatorio()* caracteres. longitud());
sb.append(index);
}
);return sb .tostring();
}