【发布时间】:2014-10-02 01:28:30
【问题描述】:
我正在构建一个 Django 网站,并且我正在使用 Selenium 来测试我的页面。我的问题是,当我运行测试时,浏览器启动,但没有加载页面,甚至没有尝试加载。它只是打开空白并且测试挂起。在我看来,liveserver 没有启动。我在 Apache2 和 WSGI 上运行,但我的理解是 Selenium 测试是由 Django 的内置 Web 服务器运行的。知道有什么问题吗?相关文件如下:
tests.py:
from selenium.webdriver.firefox.webdriver import WebDriver
class MyProjectLiveServerTestCase(LiveServerTestCase):
@classmethod
def initSeleniumDriver(cls):
cls.driver = WebDriver()
@classmethod
def closeSeleniumDriver(cls):
cls.driver.quit()
def testIndexShouldLoad(self):
self.driver.get('%s%s' % (self.live_server_url, '/nd5/mybook/'))
self.assertEqual(len(self.driver.find_elements(
By.CSS_SELECTOR,
'span#copyright'
)), 1)
settings.py:
# Test database runs on SQLite
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(os.path.realpath(os.path.dirname(__file__)), '..', 'myprojectdb'),
}
}
TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
我正在使用 django-nose,所以我以这种方式执行测试:
python manage.py test --exe
如果您需要查看代码的任何其他部分,请告诉我。
更新:
这里是更新:我发现 Firefox 不加载页面的原因是因为我的 Firefox 版本比 Selenium 支持的最新版本更新。所以我切换到 Chrome,现在请求浏览器中的 URL。但是,找不到该页面(404 错误)。这一定意味着 liveserver 仍然没有运行。我的测试在运行时没有打开 liveserver。知道为什么吗?端口没有被阻塞 - 我检查过。
【问题讨论】: