How to check if some text is present on a web page using selenium 2?
For those of you who are still interested:
Generic Solution
if text in driver.page_source: # text exists in page
unittest:
assertTrue(text in driver.page_source)
pytest:
assert text in driver.page_source
You can use driver.page_source
and a simple regular expression to check if the text exists:
import re src = driver.page_sourcetext_found = re.search(r'text_to_search', src)self.assertNotEqual(text_found, None)
You can try something like
browser = webdriver.Firefox()browser.get(url)WebDriverWait(browser, 10).until(EC.element_to_be_clickable((By.LINK_TEXT, 'some link text')))
Essentially the above lines launch Firefox, navigate to the specified url, cause the browser to hold for 10 seconds, for some url to load then look for a specific link text, if no link text is found, a TimeoutException is triggered.
Please note the number of brackets used, you will run into errors if the number of brackets does not correspond like the above.
To be able to run the above statement, the following must have been declared
from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as EC
This uses "element_to_be_clickable" - a full list of wait-conditions can be found here: Selenium Python: Waits