首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"Viewport“到底是什么?

"Viewport“到底是什么?
EN

Stack Overflow用户
提问于 2022-02-11 11:45:19
回答 1查看 63关注 0票数 0

我很难理解"Viewport“到底是什么。文档说它定义了“页面”中的“宽度”和“高度”。再说一遍,“页面”到底是什么?我以前认为它是一个浏览器选项卡,但这也是错误的,参见下面.

我的测试失败了,因为我似乎误解了"Viewport":

代码语言:javascript
复制
page.setViewport({ width: 640, height: 480 })
expect(window.innerWidth).toBe(640) // FAIL, it's 1366, Puppeteers default

从谷歌的周围,我知道有选择推出另一个窗口大小的Puppeteer。但这不是我想要的,有两个原因:

  1. 它仍然不能解释什么是"Viewport“
  2. 我不能在每一个测试中“重新启动”Puppeteer (我正在测试响应行为)

https://puppeteer.github.io/puppeteer/docs/puppeteer.page.viewport

EN

回答 1

Stack Overflow用户

发布于 2022-02-11 23:45:46

您应该期望得到page.evaluatewindow.innerWidth结果。

记住,页面内部的执行上下文与傀儡上下文是不同的。

代码语言:javascript
复制
import puppeteer, { Browser, BrowserContext, Page } from 'puppeteer'

const start = async () => {
    const browser: Browser = await puppeteer.launch({ headless: false })
    const page: Page = await browser.newPage()
    page.setViewport({ width: 640, height: 480 })
    await page.goto('http://www.samisite.com/test-csb2nf/id43.htm', { waitUntil: 'networkidle0' })
    expect(await page.evaluate(() => window.innerWidth)).toBe(640)
    console.log(await page.evaluate(() => window.innerWidth))
    await page.close()
    await browser.close()
}

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

https://stackoverflow.com/questions/71079574

复制
相关文章

相似问题

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