【问题标题】:Selenium + Firefox + Geckodriver not loading jQuerySelenium + Firefox + Geckodriver 不加载 jQuery
【发布时间】:2018-08-28 18:12:37
【问题描述】:

目前我正在为一个 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
火狐61.0.1

【问题讨论】:

  • 尝试从 src 值的开头删除斜线
  • 那行不通。但我发现它会从 CDN 加载 jquery,但不会从 /static 加载。它不会从 /static 加载任何脚本。令人难以置信的混乱。它再次在普通的 Firefox 浏览器中工作,但 selenium 拒绝从本地资源加载

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


【解决方案1】:

这里的问题是多方面的:

  • Django 单元测试不会运行 Nginx,而是运行它自己的内部 Web 服务器。此 Web 服务器以 Debug = False 运行,并且不会提供静态文件。因此您需要使用StaticLiveServerTestCase 而不是LiveServerTestCase

  • Django 2.0 有一个错误,StaticLiveServerTestCase 不起作用。 (“Nonetype 不可调用”)。升级到 Django 2.1

  • 静态文件必须位于静态文件应用程序查找器可以找到它们的位置。仅在 STATIC_ROOT 中有文件是不够的。它们必须位于 app 文件夹中,例如 /project/app/static/。所以是的,您可能必须复制所有静态文件。

这样Selenium应该可以加载本地资源了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-30
    • 2021-07-26
    • 1970-01-01
    • 2021-05-10
    • 2019-08-30
    • 2017-08-30
    • 2017-04-04
    • 1970-01-01
    相关资源
    最近更新 更多