Свойство Page.ViewportSizeопределено как обнуляемое.
При каких условиях он может быть нулевым?
Нет проблем. Я хочу знать, когда он может быть нулевым. Я не хочу неожиданных NRE. Я не понимаю, как это могло когда-либо быть нулевым, и все же это было аннотировано таким образом по какой-то причине.
Хорошо, я откопал документы и предоставил некоторую информацию. Надеюсь, это поможет.





Viewport: null в основном для интерактивного режима. Это просто означает, что пользователь будет устанавливать размер области просмотра, изменяя размер окна.
ПРИМЕЧАНИЕ: Нулевое значение отключает предустановки по умолчанию, делает область просмотра зависимой от размера окна хоста, определенного операционной системой. Это делает выполнение тестов недетерминированным.
Пример кода:
const playwright = require('playwright');
(async () => {
for (const browserType of ['chromium', 'firefox', 'webkit']) {
const browser = await playwright[browserType].launch();
const context = await browser.newContext({
viewport: null
});
const page = await context.newPage();
await page.goto('https://google.com');
await page.screenshot({ path: `example-${browserType}.png` });
await browser.close();
}
})();
Ссылка: https://github.com/microsoft/playwright/issues/2170
Есть еще один случай, когда он равен нулю, см. мой ответ.
Другой случай, когда он равен нулю:
От одного из сопровождающих репозитория :
ConnectOverCDP, и если вы не передаете область просмотра при создании контекста, это такие сценарии, в которых значение null.
С какой именно драматургической проблемой вы столкнулись?