Есть ли способ установить другой размер экрана от размера области просмотра в кукловоде? - PullRequest
0 голосов
/ 30 октября 2019

1 javascript на странице может получить три типа измерения

  • a) размер экрана, может быть получен по window.sreen.width и height;
  • b) размер окна,можно выбрать через window.outerWidth и outerHeight;
  • c) просмотреть размер порта, можно выбрать через window.innerWidth и innerHeight;

Теперь я просто хочу установить их на разныеразмеры.

2 Способы, которые я попробовал

Предположим, что размер моего рабочего стола составляет 1920x1080, я хочу установить размер экрана для кукловода 1280x720, размер окна 1280x680 и размер просмотра 1280x609.

  • a) Просто вызовите page.setViewport ({ширина: 1280, высота: 720});

    Размер экрана, полученный с помощью js на странице, составляет 1920x1080. (setViewPort не влияет на размер экрана).

  • b) Вызовите page.setViewport ({ширина: 1280, высота: 720, isMobile: true});

    Все размеры экрана, окна и вида установлены на 1280x720.

  • c) Передайте 'window-size = 1280x680' в puppeteer.launch (), затем вызовите page.setViewport ({ширина: 1280, высота: 609}):

    Правильный размер окна (1280x680) и размер порта просмотра (1280x609) получены, но размер экрана по-прежнему является размером экрана устройства отображения (1920x1080), но ожидается 1280x720.

Код js:

    cfgs = {headless: false, userDataDir: './userdata'};
    cfgs.args = ['--window-size=' + winWidth +',' + winHeight];
    const browser = await puppeteer.launch(cfgs);
    var pages = await browser.pages();
    var page = pages[0];
    await page.setViewport({width:viewWidth, height:viewHeight});
    await page.goto('xxx');

3 То, что я ожидаю

Кажется

  • a) если isMobile = true установлен для setViewport, все размеры идентичны.
  • b) если isMobile = true не установлен, размер экрана является фактическим размером экрана.

Кто-нибудь подскажет, как установить размер экрана отдельно от размера просмотра?

...