Ответ 1
Вы можете использовать driver.page_source
и простое регулярное выражение, чтобы проверить, существует ли текст:
import re
src = driver.page_source
text_found = re.search(r'text_to_search', src)
self.assertNotEqual(text_found, None)
Привет, я использую селен для автоматизации теста на веб-страницах. Я использую selenium 2 и python и хочу иметь ответы только в этой области. SO Как проверить, присутствует ли какой-либо текст? Я пробовал активы равными, но он не работает?
assertEquals(driver.getPageSource().contains("email"), true);
Вы можете использовать driver.page_source
и простое регулярное выражение, чтобы проверить, существует ли текст:
import re
src = driver.page_source
text_found = re.search(r'text_to_search', src)
self.assertNotEqual(text_found, None)
Для тех из вас, кто еще заинтересован:
Универсальное решение
if (text in driver.page_source):
# text exists in page
unittest:
assertTrue (text in driver.page_source)
Pytest:
assert (text in driver.page_source)
Вы можете попробовать что-то вроде
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