我正在使用Selenium来测试我的Django项目的JavaScript。
Web驱动程序正在获取index.html,这是主页,但JavaScript没有加载到我的index.html页面中(就好像我正在运行整个项目,而不是单个页面/模板)。
我如何加载整个Django项目以使Web驱动程序获得预期的结果?
我运行了测试文件,并得到了以下错误:
“self.assertEqual(驱动程序.查找元素(按.ID,“现金表-美元”).文本,100)Assert错误:'{{美元|整数逗号}}'!= 100”
{{美元|intcomma }}是模板化的,因为我相信Django项目中的其他文件没有加载。
我希望它最初是0,然后在测试中单击按钮后变为100。
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By
def file_uri(filename):
return pathlib.Path(os.path.abspath(filename)).as_uri()
driver = webdriver.Chrome(ChromeDriverManager().install())
class ClientSideTests(unittest.TestCase):
def test_deposit_withdraw(self):
driver.get(file_uri("portfolio/templates/portfolio/index.html"))
balance = driver.find_element(By.ID, "cash-table-usd").text
driver.find_element(By.ID, "cash-amount").send_keys(100)
cash_submit = driver.find_element(By.ID, "cash-button")
cash_submit.click()
self.assertEqual(driver.find_element(By.ID, "cash-table-usd").text, 100)
if __name__ == "__main__":
unittest.main()
2条答案
按热度按时间ux6nzvsh1#
cd
到您的项目目录中,然后8i9zcol22#
你应该使用Django的StaticLiveServerTestCase,下面是运行Selenium测试文档中LiveServerTestCase部分的一个例子。