嗨,我正在使用 selenium 对网页进行自动化测试。我正在使用 selenium 2 和 python,并且只想在这个框架中得到答案。那么如何检查是否存在某些文本?我试过资产等于,但它不起作用?
assertEquals(driver.getPageSource().contains("email"), true);
嗨,我正在使用 selenium 对网页进行自动化测试。我正在使用 selenium 2 和 python,并且只想在这个框架中得到答案。那么如何检查是否存在某些文本?我试过资产等于,但它不起作用?
assertEquals(driver.getPageSource().contains("email"), true);
对于那些仍然感兴趣的人:
通用解决方案
if text in driver.page_source:
# text exists in page
单元测试:
assertTrue(text in driver.page_source)
pytest:
assert text in driver.page_source
您可以使用driver.page_source
一个简单的正则表达式来检查文本是否存在:
import re
src = driver.page_source
text_found = re.search(r'text_to_search', src)
self.assertNotEqual(text_found, None)
你可以尝试类似的东西
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:等待