Sobes.tech
Junior — Middle

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