2012-06-11 7 views
9

Hallo Ich verwende Selen, um Test auf Webseiten zu automatisieren. Ich verwende Selen 2 und Python und möchte nur in diesem Rahmen Antworten haben. SO wie überprüfe ich ob ein Text vorhanden ist oder nicht? Ich habe Asset gleich ausprobiert, aber es funktioniert nicht?Wie kann man überprüfen, ob auf einer Webseite mit Selen 2 Text vorhanden ist?

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

Kontext ist eine wunderbare Sache hier - was meinst du es nicht funktioniert? Wie funktioniert es nicht? Was tut es? Veröffentlichen Sie eine Kopie Ihres HTML, nur um das Element, das Sie versuchen, zu erhalten. Warum scannen Sie die GESAMTE Seitenquelle dafür? Sie müssen möglicherweise zurück zum Zeichenbrett auf Selenium Tutorials gehen. – Arran

Antwort

15

Sie können driver.page_source verwenden und einen einfachen regulären Ausdruck zu prüfen, ob der Text vorhanden ist:

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

Sie können

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

im Wesentlichen die obigen Zeilen so etwas wie

versuchen Firefox zu starten, navigieren zu der angegebenen URL, den Browser für 10 Sekunden zu halten, für einige URL laden dann nach einem bestimmten Link suchen Text, wenn kein Link-Text gefunden wird, eine TimeoutException ausgelöst wird rot.

Bitte beachten Sie die Anzahl der Klammern verwendet, werden Sie in Fehler ausgeführt werden, wenn die Anzahl der Klammern entspricht nicht wie die oben genannten.

die obige Aussage, die folgenden sein können, ausgeführt wurde

haben muss
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

Für die von Ihnen erklärt, die noch Interesse:

generische Lösung

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)