如何使用selenium 2检查网页上是否存在某些文本?

时间:2012-06-11 11:07:29

标签: python automated-tests selenium-webdriver

您好我正在使用selenium在网页上自动化测试。 我正在使用selenium 2和python,并希望只在这个框架中得到答案。 那我如何检查是否存在某些文字?我试过资产等于但它没有用?

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

3 个答案:

答案 0 :(得分:21)

您可以使用driver.page_source和一个简单的正则表达式来检查文本是否存在:

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

答案 1 :(得分:13)

对于那些仍然感兴趣的人:

通用解决方案

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

<强>单元测试

assertTrue (text in driver.page_source)

<强> pytest

assert (text in driver.page_source) 

答案 2 :(得分:4)

您可以尝试类似

的内容
def open_file(self)

基本上上面的行启动Firefox,导航到指定的URL,导致浏览器保持10秒,加载一些url然后查找特定的链接文本,如果没有找到链接文本,则触发TimeoutException。

请注意使用的括号数量,如果括号的数量与上述不符,则会遇到错误。

为了能够运行上述语句,必须声明以下内容

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

这使用&#34; element_to_be_clickable&#34; - 可在此处找到完整的等待条件列表:Selenium Python: Waits