Python 如何使用selenium 2检查网页上是否存在某些文本?
您好,我正在使用selenium对网页进行自动化测试。 我正在使用selenium 2和python,只想在这个框架中找到答案。 那么,如何检查是否存在某些文本?我试过asset equals,但它不起作用Python 如何使用selenium 2检查网页上是否存在某些文本?,python,automated-tests,selenium-webdriver,Python,Automated Tests,Selenium Webdriver,您好,我正在使用selenium对网页进行自动化测试。 我正在使用selenium 2和python,只想在这个框架中找到答案。 那么,如何检查是否存在某些文本?我试过asset equals,但它不起作用 assertEquals(driver.getPageSource().contains("email"), true); 您可以使用driver.page\u source和一个简单的正则表达式来检查文本是否存在: import re src = driver.page_sour
assertEquals(driver.getPageSource().contains("email"), true);
您可以使用
driver.page\u 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
这使用了“元素可点击”-此处可以找到等待条件的完整列表:对于仍感兴趣的人: 通用解决方案
if text in driver.page_source:
# text exists in page
单元测试:
assertTrue(text in driver.page_source)
assert text in driver.page_source
pytest:
assertTrue(text in driver.page_source)
assert text in driver.page_source
上下文在这里是一件美妙的事情-你说它不起作用是什么意思?它怎么不起作用?它有什么作用?在您试图获取的元素周围发布一份HTML副本。为什么要扫描整个页面源代码?您可能需要回到Selenium教程的绘图板上。细微的更正:pytest one甚至可以(应该)像在驱动程序中断言文本一样简单。page_source感谢您的反馈。我修改了我的答案。这是否意味着文本是“可见”的,或者只是它存在于源代码中的某个地方,但可能被css或下拉列表等隐藏?@Jeppe这意味着它只是在HTML源代码中-因此,是的,它可以通过css隐藏。应该考虑这个问题,并对解决方案进行逐页测试。@Chickenfeets谢谢。“Boon kwee”的答案依赖于WebDriverWait来等待元素被点击——因此它必须是完全可见的。此处提供的其他等待条件: