Selenium + Firefox + Geckodriver无法加载jQuery

时间:2018-08-28 18:12:37

标签: jquery selenium selenium-webdriver geckodriver selenium-firefoxdriver

目前,我正在为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

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之后应该可以加载本地资源。