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

2024-09-27 20:17:17 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我正在使用selenium自动测试网页。 我使用的是selenium 2和python,只想在这个框架中找到答案。 那么我该如何检查文本是否存在?我试过资产相等,但它不起作用?

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

Tags: 答案文本框架true网页emaildriverselenium
3条回答

您可以使用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

单元测试

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

相关问题 更多 >

    热门问题