【问题标题】:How to check incoming requests in LiveServerTestCase?如何检查 LiveServerTestCase 中的传入请求?
【发布时间】:2015-03-13 17:55:59
【问题描述】:

我的用例: 我有一个使用 JavaScript 的自定义 Django 小部件,我想为它编写一个测试。我想用包含小部件呈现的输入的表单构建 HTML,然后提交此表单并对传入的 POST 请求进行一些检查。我认为 Selenium 和可选的 LiveServerTestCase 应该是可能的。

但是有几个问题:

  1. Selenium 不允许拦截此类请求。
  2. LiveServerTestCase 在单独的线程中运行服务器,因此我无法挂钩查看代码并将断言放在那里。

如何拦截来自 Selenium 的请求?或者也许还有其他方法可以测试这些东西?

【问题讨论】:

    标签: javascript django selenium django-forms


    【解决方案1】:

    您链接的 Django 文档中的示例是关键。在 test_login 方法中,您会看到它执行 GET 请求,然后检查表单中存在的所有内容。

    def test_login(self):
        self.selenium.get('%s%s' % (self.live_server_url, '/login/'))
        username_input = self.selenium.find_element_by_name("username")
        username_input.send_keys('myuser')
        password_input = self.selenium.find_element_by_name("password")
        password_input.send_keys('secret')
        self.selenium.find_element_by_xpath('//input[@value="Log in"]').click()
    

    您应该遵循相同的路径,然后发帖。

    1. 发送get 并检查您想要查看的元素的内容。
    2. 使用您需要的值填充输入。
    3. 发送post,并检查您想查看的元素的内容。

    另外,你提到了 javascript。您需要使用 StaticLiveServerTestCase 才能获得要提供的 javascript。

    【讨论】:

      猜你喜欢
      • 2022-10-07
      • 2011-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-22
      • 1970-01-01
      • 2014-10-28
      • 2018-06-27
      相关资源
      最近更新 更多