Dificultades en las pruebas de automatización web: operación de la barra de desplazamiento, procesamiento del cuadro de fecha y carga de archivos

¿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

  

 

Supongo que te gusta

Origin www.cnblogs.com/hherbk/p/12707318.html
Recomendado
Clasificación