首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django Selenium liveserver在运行测试时没有启动

Django Selenium liveserver在运行测试时没有启动
EN

Stack Overflow用户
提问于 2014-08-08 14:20:19
回答 2查看 1.2K关注 0票数 1

我正在构建Django网站,我正在使用Selenium来测试我的页面。我的问题是,当我运行测试时,浏览器就会启动,但是没有加载或尝试加载任何页面。它只是空着打开,测试就挂起来了。在我看来,生活似乎还没有开始。我在Apache2和WSGI上运行,但我的理解是Selenium测试是由Django的内置web服务器运行的。知道有什么不对吗?有关档案如下:

tests.py:

代码语言:javascript
复制
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:

代码语言:javascript
复制
# 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-鼻子,所以我以这样的方式执行测试:

代码语言:javascript
复制
python manage.py test --exe

如果你需要看代码的其他部分,请告诉我。

更新:

下面是更新:我发现Firefox不加载页面的原因是我的Firefox版本比Selenium支持的最新版本更新。所以我切换到Chrome,现在浏览器中的URL被请求了。但是,没有找到该页(404错误)。这一定意味着救生员还没有运行。我的测试在他们跑的时候不会打开救生圈。知道为什么吗?港口没有堵塞-我查过了。

EN

回答 2

Stack Overflow用户

发布于 2014-08-08 15:22:17

我认为您忘记选择要使用的webdriver:

代码语言:javascript
复制
class SomethingTest(LiveServerTestCase):
    def setUp(self):
        self.browser = webdriver.Firefox()
        self.browser.implicitly_wait(2)

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

    def test_user_can_log_in(self):
        self.browser.get(self.live_server_url + reverse('something'))
        self.fail('write rest of the test')
票数 0
EN

Stack Overflow用户

发布于 2015-09-05 01:42:40

这可能不是您的问题,但让我头疼的是,LiveServerTestCasesetUpClass启动服务器线程,我在没有调用super(MyProjectLiveServerTestCase, self).setUpClass()的情况下定义了这个线程。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25205667

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档