目前,我正在为Django项目编写一些单元测试。
但是,当Selenium加载页面时,它不会加载jQuery,我在geckodriver.log中得到了它:
JavaScript error: http://localhost:59726/, line 370: ReferenceError: $ is not defined
该脚本位于head
标记中:
<script src="/static/scripts/jquery-1.9.1.min.js"></script>
页面在Firefox中可以正常加载。有什么想法吗?
硒版本3.14
壁虎驱动程序0.21
Firefox 61.0.1
答案 0 :(得分:0)
这里的问题是多方面的:
Django单元测试不会运行Nginx,而是运行其自己的内部Web服务器。该Web服务器以Debug = False运行,并且将不提供静态文件。因此,您将需要使用StaticLiveServerTestCase
而不是LiveServerTestCase
Django 2.0有一个StaticLiveServerTestCase
不起作用的错误。 (“ Nonetype不可调用”)。升级到Django 2.1
静态文件必须位于staticfiles应用程序查找器可以找到它们的地方。仅在STATIC_ROOT
中保存文件是不够的。它们必须位于应用文件夹中,例如/project/app/static/
。因此,是的,您可能必须复制所有静态文件。
此Selenium之后应该可以加载本地资源。