首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >self.client.get()与self.browser.get()的用法

问self.client.get()与self.browser.get()的用法
EN

Stack Overflow用户
提问于 2019-08-09 08:09:52
回答 1查看 2.6K关注 0票数 1

我正在和Django一起写这本关于TDD的书。我得到了与使用self.client.get('/')不同的行为和使用self.browser.get('/localhost:8000')的不同行为,看起来它们看起来是一样的,但行为不同。

代码语言:javascript
复制
class FirstTest(unittest.TestCase):

    def setUp(self):
        self.browser = webdriver.Chrome(os.path.join(os.getcwd(), 'chromedriver'))

    def test_home_page_returns_correct_html(self):
        response = self.client.get('/')
        self.assertTemplateUsed(response, 'home.html')

有人能解释一下这里发生了什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-09 08:21:42

这是两件不同的事情。

self.client,是内置的Django测试客户端.这不是真正的浏览器,甚至不发出真正的请求。它只构造一个Django HttpRequest对象,并通过请求/响应过程(中间件、URL解析器、视图、模板)传递它,并返回Django生成的任何内容。它根本不会解析或呈现响应,也不会发出由HTML驱动的其他资产请求等等。

但webdriver.Chrome实际上是一个真正的浏览器( Chrome )。Webdriver启动一个无头版本的Chrome,并驱动它请求您的网页。它们通过实际的HTTP请求,然后在浏览器中呈现响应;就像真正的浏览器一样,如果HTML包含指向JS或CSS的链接,它将请求它们,然后也呈现它们。

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

https://stackoverflow.com/questions/57425954

复制
相关文章

相似问题

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