¿Cómo deslizar la página hacia abajo?
En términos generales, cuando se realizan pruebas de automatización web, no es necesario escribir código por separado y deslizar la página para que sea visible, porque la operación de clic, siempre que el elemento exista y esté cargado, puede hacer clic en él, sin escribir código adicional para elementos deslizantes.
Si necesita deslizarse en circunstancias especiales, el método execute_script en la biblioteca de selenio en python ejecuta la instrucción js para implementar la función de desplazamiento
'argumentos [elemento objeto] .scrollIntoView ();', elemento objeto
driver.execute_script ('argumentos [0] .scrollIntoView (falso);', ele) # Mueva el elemento a la parte inferior visible driver.execute_script ('argumentos [0] .scrollIntoView ();', ele) # Mueva el elemento al controlador superior visible .execute_script ('window.scrollTo (0, document.body.scrollHeight)') # Mueve la página al final de la página driver.execute_script ("window.scrollTo (document.body.scrollHeight, 0)") # Mueve la página a la página Arriba
Procesamiento de cuadro de fecha
Creo que ha encontrado un cuadro de fecha al probar una página web. Es un tipo que solo se puede seleccionar y no se puede ingresar directamente. ¿Cómo lidiar con este tipo de prueba de automatización web?
Cambie el valor del atributo para que pueda ingresarse directamente
desde selenium import webdriver driver = webdriver.Chrome () # pha_js = "var a = argumentos [0]; a.readOnly = false; a.value = argumentos [1];" # js 语法 loc = ("xpath", " // * [@ id = 'train_date'] ") ele = driver.find_element (* loc) now_10 =" 1111 "# datetime 获取 当前 时间 driver.execute_script (" var a = argumentos [0]; a.readOnly = false ; a.value = argumentos [1]; ", ele, ahora_10)
12306 Ejemplo de cuadro de selección de fecha
driver = webdriver.Chrome () driver.get ('https://www.12306.cn/index/') driver.implicitly_wait (20 ) # Primero seleccione el punto de partida, luego modifique el punto de partida driver.find_element_by_id ("fromStationText") .click () driver.find_element_by_xpath ('// li [@ title = "北京"]'). click () pha_js = 'var a = document.getElementById ("fromStationText"); a.value = "Shenzhen"' driver .execute_script (pha_js) #Seleccione primero el destino , luego modifique el controlador de destino.find_element_by_id ("toStationText"). haga clic en () driver.find_element_by_xpath ('// li [@ title = "上海"]'). haga clic () arive_js = 'var a = document.getElementById ("toStationText"); a.value = "常德"' driver.execute_script (arive_js) #Fecha de procesamiento time_js = 'var a = document.getElementById ("train_date"); a.readOnly = false; a.value = "2020-05-01" ' driver.execute_script (time_js) execute_script (time_js) #Date Processing ele4 = (By.ID, 'search_one') driver.find_element (* ele4) .click ()
Operación de carga
Pruebas automatizadas web, cómo simular la carga de archivos
Debido a la operación de carga, que no es una interfaz web, no puede usar la biblioteca de selenio en python
Solo use otras bibliotecas
1. Instale pip install pypiwin32 library primero
# 1 \ Busque el cuadro de entrada y abra el elemento del botón; 2. Ingrese la dirección y haga clic en abrir. # Premisa: ha aparecido la ventana de carga de Windows. Duerma 1-2 segundos para esperar a que aparezca la ventana emergente. def upload (filePath, browser_type = "chrome"): if browser_type == "chrome": title = "Open" else: title = "" # 找 元素 #first window "# 32770", "Open" dialog = win32gui. la FindWindow ( "# 32770", título) # ComboBoxEx32 = win32gui.FindWindowEx (diálogo, 0, "ComboBoxEx32", Ninguna) # dos comboBox = win32gui.FindWindowEx (ComboBoxEx32,0, "ComboBox ", Ninguna) # tres # editar Botón editar = win32gui.FindWindowEx (comboBox, 0, 'Editar', Ninguno) # 四级 # Botón de botón abierto = win32gui.FindWindowEx (diálogo, 0, ' win32gui.SendMessage (editar, win32con.WM_SETTEXT, None, filePath) #Enviar ruta del archivo win32gui.SendMessage (diálogo, win32con.WM_COMMAND, 1, botón) #Haga clic en el botón Abrir