微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我有一个存储为 const 的数组,但我收到一个错误,指出我的 const 不可迭代为什么我的列表不可迭代?

如何解决我有一个存储为 const 的数组,但我收到一个错误,指出我的 const 不可迭代为什么我的列表不可迭代?

我正在使用 puppeteer 并尝试在我循环浏览每个设备的视图时获取每个屏幕的屏幕截图,但它表示我保存列表的常量不可迭代。确切错误TypeError: testedMobileDevices is not iterable 我不明白为什么 javascript 无法遍历此列表以从列表中的每个设备生成每个页面的屏幕截图。

这是我的脚本:

//import devices from './puppeteerDevices'
const puppeteer = require('puppeteer');
const devices = puppeteer.devices;
const testedMobileDevices = devices["galaxy Note 3","galaxy Note 3 landscape","galaxy Note II","galaxy Note II landscape","galaxy S III","galaxy S III landscape","galaxy S5","galaxy S5 landscape","iPad","iPad landscape","iPad Mini","iPad Mini landscape","iPad Pro","iPad Pro landscape","iPhone 4","iPhone 4 landscape","iPhone 5","iPhone 5 landscape","iPhone 6","iPhone 6 landscape","iPhone 6 Plus","iPhone 6 Plus landscape","iPhone 7","iPhone 7 landscape","iPhone 7 Plus","iPhone 7 Plus landscape","iPhone 8","iPhone 8 landscape","iPhone 8 Plus","iPhone 8 Plus landscape","iPhone SE","iPhone SE landscape","iPhone X","iPhone X landscape","iPhone XR","iPhone XR landscape","iPhone 11","iPhone 11 landscape","iPhone 11 Pro","iPhone 11 Pro landscape","iPhone 11 Pro Max","iPhone 11 Pro Max landscape","Nexus 10","Nexus 10 landscape","Nexus 4","Nexus 4 landscape","Nexus 5","Nexus 5 landscape","Nexus 5X","Nexus 5X landscape","Nexus 6","Nexus 6 landscape","Nexus 6P","Nexus 6P landscape","Nexus 7","Nexus 7 landscape","Pixel 2","Pixel 2 landscape","Pixel 2 XL","Pixel 2 XL landscape"
];



async function login() {
    const browser = await puppeteer.launch({ headless: true });
    const page = await browser.newPage();
    const username = '-------'
    const password = '------'
    const base_url = 'http://127.0.0.1:8000/'
    await page.setDefaultNavigationTimeout(0);
    await page.goto(`${base_url}/login`);
    //await page.type('[name=username]',username);
    //await page.type('[name=password]',password);
    await page.type('#username',username);
    await page.type('#password',password);
    await page.click('[type=submit]');
    await page.waitForNavigation({
        waitUntil: 'networkidle0'
    });
}

async function test() {
    for (let device of testedMobileDevices) {
        await login();
        const base_url = 'http://127.0.0.1:8000/'
        const urls = ['Feed/','project/','mynetwork/']
        const browser = await puppeteer.launch()
        const page = await browser.newPage()
        await page.setDefaultNavigationTimeout(0);
        await page.emulate(device);

        for (let url of urls) {
            await page.goto(`${ base_url }/${url}`);
            await page.screenshot({
                path: "./screenshot.jpg",type: "jpeg",fullPage: true
            });
            await page.waitForNavigation({
        waitUntil: 'networkidle0'
    });
        }
    }
}

test().then(() => {
    console.log("all done");
}).catch(err => {
    console.log(err);
});

解决方法

您没有正确声明数组。

const testedMobileDevices = ["Galaxy Note 3","Galaxy Note 3 landscape","Galaxy Note II","Galaxy Note II landscape","Galaxy S III","Galaxy S III landscape","Galaxy S5","Galaxy S5 landscape","iPad","iPad landscape","iPad Mini","iPad Mini landscape","iPad Pro","iPad Pro landscape","iPhone 4","iPhone 4 landscape","iPhone 5","iPhone 5 landscape","iPhone 6","iPhone 6 landscape","iPhone 6 Plus","iPhone 6 Plus landscape","iPhone 7","iPhone 7 landscape","iPhone 7 Plus","iPhone 7 Plus landscape","iPhone 8","iPhone 8 landscape","iPhone 8 Plus","iPhone 8 Plus landscape","iPhone SE","iPhone SE landscape","iPhone X","iPhone X landscape","iPhone XR","iPhone XR landscape","iPhone 11","iPhone 11 landscape","iPhone 11 Pro","iPhone 11 Pro landscape","iPhone 11 Pro Max","iPhone 11 Pro Max landscape","Nexus 10","Nexus 10 landscape","Nexus 4","Nexus 4 landscape","Nexus 5","Nexus 5 landscape","Nexus 5X","Nexus 5X landscape","Nexus 6","Nexus 6 landscape","Nexus 6P","Nexus 6P landscape","Nexus 7","Nexus 7 landscape","Pixel 2","Pixel 2 landscape","Pixel 2 XL","Pixel 2 XL landscape"
];

for (let device of testedMobileDevices) {
  console.log(device)
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。