Pruebas automatizadas: tiempo de espera en Selenium

En Selenium, el tiempo de espera se refiere al tiempo de espera para que se complete una operación o se produzca un evento en un caso de prueba. Selenium proporciona una variedad de formas de esperar el tiempo, incluido el uso de los métodos presencia_of_element_located y visibilidad_of_element_located en ExpectedConditions para esperar a que el elemento sea visible o invisible, y el uso hasta y cuándo para esperar a que se complete una operación específica o que ocurra un evento específico. .

Aquí hay un código de muestra: 

1. Utilice el método presencia_of_element_located para esperar a que se cargue un elemento

from selenium import webdriver
 
from selenium.webdriver.common.by import By
 
from selenium.webdriver.support.ui import WebDriverWait
 
from selenium.webdriver.support import expected_conditions as EC
 
# 设置浏览器驱动
 
browser = webdriver.Chrome()
 
# 打开网站
 
browser.get('
https://example.com
browser.get('
 
# 等待某个元素加载
 
element = WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.ID, 'myelement')))

2. Utilice hasta para esperar a que se complete una operación específica.

from selenium import webdriver
 
from selenium.webdriver.common.by import By
 
from selenium.webdriver.support.ui import WebDriverWait
 
from selenium.webdriver.support import expected_conditions as EC
 
# 设置浏览器驱动
 
browser = webdriver.Chrome()
 
# 打开网站
 
browser.get('
https://example.com
browser.get('
 
# 等待页面中的表单加载完成
 
element = WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.ID, 'myform')))
 
# 查找元素并提交表单
 
element.find_element_by_id('my-input').send_keys('my-value')
 
element.find_element_by_id('my-submit').click()

3. Utilice cuándo esperar a que ocurra un evento específico.

from selenium import webdriver
 
from selenium.webdriver.common.by import By
 
from selenium.webdriver.support.ui import WebDriverWait
 
from selenium.webdriver.support import expected_conditions as EC
 
# 设置浏览器驱动
 
browser = webdriver.Chrome()
 
# 打开网站
 
browser.get('
https://example.com
browser.get('
 
# 等待页面中的表单提交完成
 
element = WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.ID, 'myform')))
 
# 等待表单提交完成事件触发
 
element.find_element_by_id('my-submit').click()

hay que tener en cuenta es:

El tiempo de espera debe determinarse de acuerdo con el caso de prueba específico y el comportamiento de los usuarios reales debe simularse tanto como sea posible para garantizar que el caso de prueba sea más preciso y confiable.

4. Utilice el método ExpectedConditions.visibility_of_element_located para esperar a que un elemento sea visible.

from selenium import webdriver
 
from selenium.webdriver.common.by import By
 
from selenium.webdriver.support.ui import WebDriverWait
 
from selenium.webdriver.support import expected_conditions as EC
 
# 设置浏览器驱动
 
browser = webdriver.Chrome()
 
# 打开网站
 
browser.get('
https://example.com
browser.get('
 
# 等待某个元素可见
 
element = WebDriverWait(browser, 10).until(EC.visibility_of_element_located((By.ID, 'my-element')))

 

hay que tener en cuenta es:

El método visibilidad_of_element_located solo se puede utilizar para esperar a que un elemento sea visible, pero no para esperar a que un elemento sea invisible.

Además, el método visibilidad_of_element_located puede tardar más tiempo que otros métodos porque espera a que el elemento se vuelva visible en lugar de simplemente determinar si el elemento es visible. Por lo tanto, el método debe ajustarse según la situación específica al utilizarlo.

5. Utilice el método ExpectedConditions.title_contains para esperar a que el título de la página contenga el contenido especificado.

from selenium import ebdriver
 
from selenium.webdriver.common.by import By
 
from selenium.webdriver.support.ui import WebDriverWait
 
from selenium.webdriver.support import expected_conditions as EC
 
# 设置浏览器驱动
 
browser = webdriver.Chrome()
 
# 打开网站
 
browser.get('
https://example.com
browser.get('
 
# 等待页面标题包含指定内容
 
element = WebDriverWait(browser, 10).until(EC.title_contains('My Web Page'))

 

hay que tener en cuenta es:

El método title_contains solo se puede usar para esperar a que el título de la página contenga el contenido especificado, pero no se puede usar para esperar a que el título de la página no contenga el contenido especificado.

Además, el método title_contains puede consumir más tiempo que otros métodos porque espera a que el título de la página contenga completamente el contenido especificado, en lugar de simplemente determinar si el título de la página contiene el contenido especificado. Por lo tanto, el método debe ajustarse según la situación específica.

Finalmente me gustaría agradecer a todos los que leyeron atentamente mi artículo, la reciprocidad siempre es necesaria, aunque no es algo muy valioso, si puedes usarlo, puedes tomarlo directamente:

Cómo obtener documentos:

Este documento debería ser el almacén de preparación más completo y completo para los amigos que quieran participar en [pruebas de software]. Este almacén también me ha acompañado en el viaje más difícil. ¡Espero que también pueda ayudarlo a usted!

Todo lo anterior se puede compartir, solo necesitas buscar en la cuenta oficial de vx: Programmer Hugo para obtenerlo gratis.

Supongo que te gusta

Origin blog.csdn.net/2301_79535544/article/details/133563322
Recomendado
Clasificación