Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Usar variavel como XPATH

Boa tarde pessoal, sou iniciante e estou com uma dúvida sobre a utilização de variáveis.

Existe um método de busca de texto como xpath. É possível utilizar uma variável para definir essa busca?

exemplo de código

nomeCertificado = "Exemplo"
busca1 = "\"//*[contains(text(), '"
busca2 = "')]\""

nomeEmpresa = str(busca1 + nomeCertificado + busca2)

# Forma que funciona
WebDriverWait(driver, 20).until(EC.element_to_be_clickable(
    (By.XPATH, "//*[contains(text(), 'Exemplo')]"))).click()

# Forma que eu gostaria de utilizar
WebDriverWait(driver, 20).until(EC.element_to_be_clickable(
    (By.XPATH, nomeEmpresa))).click()

Essa alteração poderia me permitir incluir a opção de buscar por listas, o que poderia melhorar e muito o meu projeto. Desculpem se não expliquei bem.

print do erro

1 resposta
solução!

Olá Renato!

Sim, é possível utilizar variáveis para definir a busca utilizando XPath. No exemplo de código que você compartilhou, você está concatenando as partes da busca em uma variável chamada "nomeEmpresa".

Uma possível solução para esse problema é utilizar f-strings para formatar a string de busca com a variável. Ficaria assim:

nomeCertificado = "Exemplo"
busca = f"//*[contains(text(), '{nomeCertificado}')]"

WebDriverWait(driver, 20).until(EC.element_to_be_clickable(
    (By.XPATH, busca))).click()

Dessa forma, a variável "nomeCertificado" será inserida na string de busca, permitindo que você busque por diferentes valores de certificado.

Espero ter lhe dado um "norte" e reforço que em casos de dúvidas, conte sempre com o fórum da comunidade Alura! Bons estudos!

Sucesso

Um grande abraço e até mais!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!