我有一个简单的测试代码:
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
谢谢!
答案 0 :(得分:2)
案例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服务器,然后关闭 它被拆解了。