2012-06-11 17 views
9

Hola, estoy usando selenio para automatizar la prueba en páginas web. Estoy usando selenio 2 y python y me gustaría tener respuestas solo en este marco. ¿Cómo verifico si algún texto está presente o no? He intentado activos iguales pero no está funcionando?¿Cómo verificar si algún texto está presente en una página web usando selenio 2?

assertEquals(driver.getPageSource().contains("email"), true); 
+0

El contexto es una cosa maravillosa aquí - ¿qué es lo que quiere decir que no funciona? ¿Cómo no funciona? ¿Qué hace? Publique una copia de su HTML, solo alrededor del elemento que está tratando de obtener. ¿Por qué está escaneando la fuente de la página ENTERA para eso? Es posible que deba volver al tablero de dibujo en los tutoriales de Selenium. – Arran

Respuesta

15

Puede utilizar driver.page_source y un simple expresión regular para comprobar si existe el texto:

import re  
src = driver.page_source 
text_found = re.search(r'text_to_search', src) 
self.assertNotEqual(text_found, None) 
0

Usted puede intentar algo como

browser = webdriver.Firefox() 
browser.get(url) 
WebDriverWait(browser, 10).until(EC.element_to_be_clickable((By.LINK_TEXT, 'some link text'))) 

esencialmente las líneas anteriores lanzar Firefox, vaya a la URL especificada, haga que el navegador se mantenga pulsado durante 10 segundos, para que se cargue alguna url y luego busque un texto de enlace específico; si no se encuentra texto de enlace, se activa una TimeoutException rojo.

Tenga en cuenta el número de corchetes utilizados, se encontrará con errores si el número de corchetes no corresponde al anterior.

Para poder ejecutar la declaración anterior, la siguiente debe haber sido declarado

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 
6

Para aquellos de ustedes que todavía están interesados:

Genérico Solución

if (text in driver.page_source): 
    # text exists in page 

unittest:

assertTrue (text in driver.page_source) 

PYtest:

assert (text in driver.page_source == True) 
Cuestiones relacionadas