Objetos de lectura sugeridos: sin base de front-end, sin Javascript, novatos en automatización web (selenium)
Pruebas automatizadas web, ¿por qué necesita aprender las instrucciones js después de conocer el selenio?
Las secciones anteriores hablaron sobre la operación de selenium, pero todavía hay algunas operaciones del navegador (como: desplazamiento de página, selección de tiempo, archivos, etc.) que no se pueden implementar directamente a través de selenium. Por lo tanto, también debemos comprender algunos comandos js simples y dejar que el navegador realice las operaciones correspondientes enviando comandos js.
que es js
HTML solo es responsable de mostrar estáticamente
el lenguaje de programación utilizado por los ingenieros front-end de Javascript. Rol: Permitir que las páginas web logren efectos dinámicos.
Casi todos los navegadores tienen un entorno de ejecución de Javascript incorporado, por lo que puede escribir y ejecutar comandos js directamente en la consola de herramientas de desarrollo del navegador.
Diagrama esquemático de selenio
¿Cómo js controla el navegador?
Objeto de documento DOM (modelo de objeto de documento)
, que representa la página web completa actual. Ingrese el documento y se devolverá el código de esta página web.
No hablaré de los detalles aquí. Si está interesado, puede verificar la información por sí mismo (principalmente, también soy un novato en el front-end, y temo que lo engañe si no lo entiendo)
práctica:
1. Defina un nombre e imprima el nombre
Sintaxis para imprimir: console.log(nombre)
2. Posicionamiento de elementos
En python, find_element('id', 'kw') se convierte en el comando js getElementById("kw") a través de webdriver, por lo que los dos efectos son los mismos.
El comando js solo puede modificar la pantalla frontal y la página se restaurará al original después de actualizar.
# 定位百度输入框元素
el = document.getElementById("kw")
# 修改该元素的value值(selenium只能获取属性,不能修改属性)
el.value = '花测试'
# 输入框变置灰不能修改的状态
el.disabled = true
# 输入框变回可输入状态
el.disabled = false
# 清空网页。该方式可以更新或修改,甚至重写整个html
document.body.innerText = ''