【问题标题】:django selenium fails to load localhostdjango selenium 无法加载本地主机
【发布时间】:2015-12-26 01:06:57
【问题描述】:

我有一个简单的测试代码:

from selenium import webdriver

browser = webdriver.Firefox()
browser.get('http://localhost:8000')

assert 'Django' in browser.title

运行它:python3 functional_tests.py(或 ./manage.py test functional_tests)

Firefox 显示页面: 标题:加载页面问题 正文:无法连接...

如果我运行:“./manage.py runserver”,一切都很好,我可以在浏览器中看到“django hello page”。此外,如果我尝试“browser.get('http://microsoft.com')”,它就可以正常工作。

Chrome 出现同样的问题,Windows 7 x64 和 Ubuntu 14.04 x64 也出现同样的问题。

硒 2.47.3 Chromedriver 2.19

有什么线索吗?

UPD。

好的。我没有运行服务器。 但我对 LiveServerTestCase 也有同样的问题。

from selenium import webdriver
from django.test import LiveServerTestCase

class GeneralFunctionalTests(LiveServerTestCase):
    def setUp(self):
        self.browser = webdriver.Chrome()
        self.browser.implicitly_wait(3)

    def tearDown(self):
        self.browser.quit()

    def test_can_navigate_site(self):
        self.browser.get('http://localhost:8000')
        assert 'Django' in self.browser.title

谢谢!

【问题讨论】:

  • 您在运行测试时是否正在运行 Django 服务器?这是程序化测试还是您正在运行的脚本?如果它是编程的,请查看 Django LiveServer 测试用例。 docs.djangoproject.com/en/1.4/topics/testing/…
  • 你是对的。我更新了帖子。请看一下

标签: python django selenium


【解决方案1】:

案例 1:在不运行 Django 服务器的情况下访问 'http://localhost:8000'

在第一种情况下,浏览器试图访问 localhost 上的 url。这需要一个 Django 服务器与浏览器一起运行才能正确打开 url。由于您没有同时运行 Django 服务器,因此您会收到消息 Unable to connect ..

案例 2:在运行 Django 服务器的同时访问 'http://localhost:8000'

当您在旁边运行 Django 服务器时,浏览器将能够访问 localhost url,因为在端口 8000 上运行的服务器将侦听来自浏览器的请求。所以,你可以看到 Django Hello Page

案例3:访问'http://microsoft.com

使用 selenium 访问 Microsoft's 网站也是如此。有一个服务器在他们的一端运行,它监听对http://microsoft.com 的请求,因此页面被加载。

你还能做什么?

您也可以使用LiveServerTestCase 进行测试。

来自docs:

它在安装时在后台启动一个实时的 Django 服务器,然后关闭 拆解时将其关闭。

【讨论】:

  • 好的。我没有运行服务器:) 我花了几个小时在上面。我从 LiveServerTestCase 开始并且遇到了同样的问题 - localhost 没有加载。所以我试图让它变得更容易并犯了愚蠢的错误。那么,LiveServerTestCase 有什么问题呢?我现在要用正确的代码更新我的帖子
  • 或者我应该问另一个关于 LiveServerTestCase 的问题?
  • 我认为如果它是一个单独的问题会更有用。 :) 另外,您从该代码中得到了什么错误?
  • 尝试定义setUpClass()tearDownClass(),就像他们在minimal reproducible example 中所做的那样,如果有帮助的话。 (docs.djangoproject.com/en/1.8/topics/testing/tools/…)
  • 我发布了一个关于LiveServerTestCase的新问题
猜你喜欢
  • 2013-09-04
  • 1970-01-01
  • 2014-07-16
  • 2020-04-20
  • 2023-04-04
  • 1970-01-01
  • 2019-05-24
  • 2018-05-15
  • 2012-03-22
相关资源
最近更新 更多