Explique as diferenças entre expectativas explícitas, implícitas e o mecanismo de espera de pausa na programação ou sistema de automação.
sobes.tech IA
Resposta da IA
Na programação e automação de testes, existem diferentes tipos de expectativas que ajudam a sincronizar a execução de scripts com o estado da aplicação:
-
Esperas explícitas (Explicit waits) — são esperas que são definidas explicitamente no código e fazem com que aguarde uma condição específica (por exemplo, a aparição de um elemento) durante um tempo determinado. Se a condição for atendida antes, a execução continua imediatamente.
-
Esperas implícitas (Implicit waits) — são uma configuração global para o driver, que faz com que ele espere um determinado tempo ao procurar elementos se estes não forem encontrados imediatamente. As esperas implícitas aplicam-se a todas as operações de busca de elementos.
-
Mecanismo de espera com pausa (Sleep) — é uma simples pausa na execução por um tempo fixo, independentemente do estado da aplicação. É usado raramente, pois não é eficiente e pode atrasar os testes.
Exemplo em Python com Selenium:
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
import time
driver = webdriver.Chrome()
# Espera implícita
driver.implicitly_wait(10) # esperar até 10 segundos ao procurar elementos
# Espera explícita
wait = WebDriverWait(driver, 10)
element = wait.until(EC.presence_of_element_located((By.ID, 'myElement')))
# Pausa
time.sleep(5) # simplesmente espera 5 segundos