Как проверить, присутствует ли какой-либо текст на веб-странице с использованием селена 2?

Привет, я использую селен для автоматизации теста на веб-страницах. Я использую selenium 2 и python и хочу иметь ответы только в этой области. SO Как проверить, присутствует ли какой-либо текст? Я пробовал активы равными, но он не работает?

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

Ответ 1

Вы можете использовать driver.page_source и простое регулярное выражение, чтобы проверить, существует ли текст:

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

Ответ 2

Для тех из вас, кто еще заинтересован:

Универсальное решение

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

unittest:

assertTrue (text in driver.page_source)

Pytest:

assert (text in driver.page_source) 

Ответ 3

Вы можете попробовать что-то вроде

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

По сути, вышеприведенные строки запускают Firefox, переходят по указанному URL-адресу, заставляют браузер удерживаться в течение 10 секунд, для загрузки некоторого URL-адреса затем ищут конкретный текст ссылки, если текст ссылки не найден, возникает исключение TimeoutException.

Обратите внимание на количество используемых скобок, вы будете сталкиваться с ошибками, если количество скобок не соответствует, как указано выше.

Чтобы можно было выполнить вышеупомянутое утверждение, должно быть объявлено следующее

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

Здесь используется "element_to_be_clickable" - полный список условий ожидания можно найти здесь: Selenium Python: Waits