问:
Puppeteer extra plugin recaptcha fails to enter recaptcha solution
I am trying to solve a captcha with puppeteer-extra-plugin-recaptcha.

When I run chrome with headless = false I can see that the recaptcha appears and gets solved.
The problem is, that after the captcha field disappears, nothing happens.

The logs of the puppeteer-extra plugin tell me that the captcha has been solved but the captcha id also appears in the "errors" array. These are the logs:

```<code>puppeteer-extra plugin registered stealth
puppeteer-extra-plugin:recaptcha Initialized {
    visualFeedback: false,
    throwOnError: false,
    solveInViewportOnly: false,
    solveScoreBased: false,
    solveInactiveChallenges: false,
    provider: { id: '2captcha', token: 'myToken' }
}
puppeteer-extra plugin registered recaptcha
puppeteer-extra dependencies missing Set(16) {
    'stealth/evasions/chrome.app',
    'stealth/evasions/chrome.csi',
    'stealth/evasions/chrome.loadTimes',
    'stealth/evasions/chrome.runtime',
    'stealth/evasions/defaultArgs',
    'stealth/evasions/iframe.contentWindow',
    'stealth/evasions/media.codecs',
    'stealth/evasions/navigator.hardwareConcurrency',
    'stealth/evasions/navigator.languages',
    'stealth/evasions/navigator.permissions',
    'stealth/evasions/navigator.plugins',
    'stealth/evasions/navigator.webdriver',
    'stealth/evasions/sourceurl',
    'stealth/evasions/user-agent-override',
    'stealth/evasions/webgl.vendor',
    'stealth/evasions/window.outerdimensions'
}
puppeteer-extra plugin registered stealth/evasions/chrome.app
puppeteer-extra plugin registered stealth/evasions/chrome.csi
puppeteer-extra plugin registered stealth/evasions/chrome.loadTimes
puppeteer-extra plugin registered stealth/evasions/chrome.runtime
puppeteer-extra plugin registered stealth/evasions/defaultArgs
puppeteer-extra plugin registered stealth/evasions/iframe.contentWindow
puppeteer-extra plugin registered stealth/evasions/media.codecs
puppeteer-extra plugin registered stealth/evasions/navigator.hardwareConcurrency
puppeteer-extra plugin registered stealth/evasions/navigator.languages
puppeteer-extra plugin registered stealth/evasions/navigator.permissions
puppeteer-extra plugin registered stealth/evasions/navigator.plugins
puppeteer-extra plugin registered stealth/evasions/navigator.webdriver
puppeteer-extra plugin registered stealth/evasions/sourceurl
puppeteer-extra plugin registered stealth/evasions/user-agent-override
puppeteer-extra dependencies missing Set(3) {
    'stealth/evasions/webgl.vendor',
    'stealth/evasions/window.outerdimensions',
    'user-preferences'
}
puppeteer-extra plugin registered stealth/evasions/webgl.vendor
puppeteer-extra plugin registered stealth/evasions/window.outerdimensions
puppeteer-extra plugin registered user-preferences
puppeteer-extra dependencies missing Set(1) { 'user-data-dir' }
puppeteer-extra plugin registered user-data-dir
puppeteer-extra ignoring dependency 'stealth/evasions/webgl.vendor', which has been required already.
puppeteer-extra ignoring dependency 'stealth/evasions/window.outerdimensions', which has been required already.
puppeteer-extra orderPlugins:before [
    'stealth',
    'recaptcha',
    'stealth/evasions/chrome.app',
    'stealth/evasions/chrome.csi',
    'stealth/evasions/chrome.loadTimes',
    'stealth/evasions/chrome.runtime',
    'stealth/evasions/defaultArgs',
    'stealth/evasions/iframe.contentWindow',
    'stealth/evasions/media.codecs',
    'stealth/evasions/navigator.hardwareConcurrency',
    'stealth/evasions/navigator.languages',
    'stealth/evasions/navigator.permissions',
    'stealth/evasions/navigator.plugins',
    'stealth/evasions/navigator.webdriver',
    'stealth/evasions/sourceurl',
    'stealth/evasions/user-agent-override',
    'stealth/evasions/webgl.vendor',
    'stealth/evasions/window.outerdimensions',
    'user-preferences',
    'user-data-dir'
]
puppeteer-extra orderPlugins:after [
    'stealth',
    'recaptcha',
    'stealth/evasions/chrome.app',
    'stealth/evasions/chrome.csi',
    'stealth/evasions/chrome.loadTimes',
    'stealth/evasions/chrome.runtime',
    'stealth/evasions/media.codecs',
    'stealth/evasions/navigator.hardwareConcurrency',
    'stealth/evasions/navigator.languages',
    'stealth/evasions/navigator.permissions',
    'stealth/evasions/navigator.plugins',
    'stealth/evasions/navigator.webdriver',
    'stealth/evasions/sourceurl',
    'stealth/evasions/user-agent-override',
    'stealth/evasions/webgl.vendor',
    'stealth/evasions/window.outerdimensions',
    'stealth/evasions/defaultArgs',
    'stealth/evasions/iframe.contentWindow',
    'user-preferences',
    'user-data-dir'
]
puppeteer-extra-plugin:recaptcha onPageCreated about:blank
puppeteer-extra-plugin:recaptcha solveRecaptchas
puppeteer-extra-plugin:recaptcha findRecaptchas
puppeteer-extra-plugin:recaptcha hasRecaptchaScriptTag true
puppeteer-extra-plugin:recaptcha waitForRecaptchaClient - start 2022-12-10T09:01:16.951Z
puppeteer-extra-plugin:recaptcha waitForRecaptchaClient - end 2022-12-10T09:01:17.095Z
puppeteer-extra-plugin:recaptcha hasHcaptchaScriptTag false
puppeteer-extra-plugin:recaptcha _generateContentScript recaptcha findRecaptchas undefined
puppeteer-extra-plugin:recaptcha _generateContentScript hcaptcha findRecaptchas undefined
puppeteer-extra-plugin:recaptcha Filter results: 0 of 1 captchas filtered from results.
puppeteer-extra-plugin:recaptcha findRecaptchas {
captchas: [
    {
        sitekey: '6LdkZisUAAAAACQ1YvSn_fsTXRLoNCsiYuoKyDH7',
        callback: 'GoogleRecaptchaResolved-cce0b13e-8713-49a2-acd5-26d83e190888',
        _vendor: 'recaptcha',
        id: 'za5qgnk00ldj',
        s: null,
        widgetId: 0,
        display: [Object],
        url: 'myUrl',
        hasResponseElement: true,
        isEnterprise: false,
        isInViewport: true,
        isInvisible: true,
        _type: 'invisible',
        hasActiveChallengePopup: true,
        hasChallengeFrame: true
    }
],
filtered: [],
error: null
}
puppeteer-extra-plugin:recaptcha getRecaptchaSolutions { captchaNum: 1 }
puppeteer-extra-plugin:recaptcha getRecaptchaSolutions {
    solutions: [
        {
            _vendor: 'recaptcha',
            provider: '2captcha',
            id: 'za5qgnk00ldj',
            requestAt: 2022-12-10T09:01:17.177Z,
            providerCaptchaId: '72267878173',
            text: '03AEkXODAdsSHFnLWZfzpbpJu1AOGLPkPIxXUHInfXhViJLcn8rOn-DJ4jIKV0uIfcBhsOpOMUFyHFQuaLNNznqVee6cXE1b6U1X6pKiJnxOhuRIPQO5J0owKiv6KK_v_C6nKb3cqTrfvFmEFl4A1fOh-ZNg_agiICvdx2AUkcmOr8KJAp4dVdUhguEpgP-JnAthH8TBWt4hjne74flB3VUfopFvjAQMqDwmzCDXqYU53yxvh80hqjsVRCh2CAyfX0L9yN5Wseb_VTHdvJZh-nNUHdIt5NsNa9HVYT9NI2qsta-2Bq_xb-m8tnoAWD9TJbaoQ8YCUZ7o2wWUYJb8Iie5o8-YpfMu8vn07sHW1nz0EJFLvkahJ5sdgtCBMWbM54Up5fdRGZssQmroa23UgJiTOIHVa4G30hwj4tUB6c9NVT3OYDvZ61pjaMbMBvs05pOPzeMsaxRVW40yLvgnUYmCZNJv9k4WEIEL_Q8svmYf6kVnOJP5eZCIbSkX8-2gc-vbuZE4kAhrtj0d4qx5jgWvkWAr0MQxp6K6-NGnow9_L1QjdzbDavTWYdS-ubP54N2p4q677yhmtC8c8ZXWJAowOgrXNxVdX39RzMIJM1IZfhXC9-XEYwZ5i4JGa1uvK1dmreDPjWzBt0XHErgTPbXRjwy2c4lnKnar_oi-ZLPxMskZlJ-Kcobg7R_Nz-NkagYV2RDuKwP_37PiVFRV5P7awyrWK7S6GvL-Q0Pa4c3y63Kg8Vvl-PX77VdlIkI4knOGZDI9ppASqnQ2wCGYSwKM2DjRY29j69s_Sl8uDdug2KmL0F1spQoUE4yYPksKAI_yXFrKrmsBuwysGD65GyjLWdGmdMXnZ00ceURzeIprlclPeH_wrTQKmC4EeOGZh_FzBEwvU7GmeQrcKj7vMbSG8vrWVlJyiukPj2WPbJ2Dl_iV_Xtr3GyJDsjdItSTLA5fXgUQg_BRwpcTVbbrfiLJ-TnkW-W57VcgUt4fU-A5iwPm1P9BXq387UmFwa14IErSZYAhHcSjULR9IQiz32x9MppSvBL4oa1SHGwCklRRiQvqoaqQbG6stKVUt66_TaCRdAupJrTBFkP3wha0Y72kJt4Yu2FaOJ10HvOQXG0wzdDLBON6Mtk6ZaxQo-yvBZZnEmr85X2WNLNR2BJ_qb0qN5cFl-GA44Zu2aJkVvw6ND30OhGzQXEDaAL02YjCA1rUmTYEGuIIBb_aE_X6HJMQB356_BjDhoH861bh1t_jsW4MdqdHFnhaaCQBSiMrSkEks0qVIvrhAyAvyJV_qbKtdknfHUX6TaQ_-pbp7vZHM6uNA-NBkHJlE3T5AuqX6dCOBla_DB1oJ9X2_W9oF5ApH5uGBOy0NHsiSfnoBHxvXmKvYuVfnR1RM3Gt23xGsAdArGpBivuLG-vpzy7YlNYt_nrb8rw0FT0KG8YRPILjjn9TOWZI_bT37rGIAgiqRX0m0ayGL4Afj7ZW3nHmdlHGsx7x0AsYxoril3JIlXB5SFIkd0E7x_y7vTAbNoqHpqztjHkDPPEdWujnCgEhUasX5TMSSyQNsHONiw2rQmg93ZAV7WovNvQVo3b-4ppCjDFWRpjcpBsRZgG-WyJnpr3dtE_RIZarU7_2aDBnmWC46iVHfSQyw_u_tQPEImOTAKLVmHt_IqBoiCgTP5gPciycPqXu9gptlF8jHi9Zw-7pvW_DFWouo-9EM',
            responseAt: 2022-12-10T09:01:19.465Z,
            hasSolution: true,
            duration: 2.288
        }
    ],
    error: undefined
}
puppeteer-extra-plugin:recaptcha enterRecaptchaSolutions {
    solutions: [
        {
            _vendor: 'recaptcha',
            provider: '2captcha',
            id: 'za5qgnk00ldj',
            requestAt: 2022-12-10T09:01:17.177Z,
            providerCaptchaId: '72267878173',
            text: '03AEkXODAdsSHFnLWZfzpbpJu1AOGLPkPIxXUHInfXhViJLcn8rOn-DJ4jIKV0uIfcBhsOpOMUFyHFQuaLNNznqVee6cXE1b6U1X6pKiJnxOhuRIPQO5J0owKiv6KK_v_C6nKb3cqTrfvFmEFl4A1fOh-ZNg_agiICvdx2AUkcmOr8KJAp4dVdUhguEpgP-JnAthH8TBWt4hjne74flB3VUfopFvjAQMqDwmzCDXqYU53yxvh80hqjsVRCh2CAyfX0L9yN5Wseb_VTHdvJZh-nNUHdIt5NsNa9HVYT9NI2qsta-2Bq_xb-m8tnoAWD9TJbaoQ8YCUZ7o2wWUYJb8Iie5o8-YpfMu8vn07sHW1nz0EJFLvkahJ5sdgtCBMWbM54Up5fdRGZssQmroa23UgJiTOIHVa4G30hwj4tUB6c9NVT3OYDvZ61pjaMbMBvs05pOPzeMsaxRVW40yLvgnUYmCZNJv9k4WEIEL_Q8svmYf6kVnOJP5eZCIbSkX8-2gc-vbuZE4kAhrtj0d4qx5jgWvkWAr0MQxp6K6-NGnow9_L1QjdzbDavTWYdS-ubP54N2p4q677yhmtC8c8ZXWJAowOgrXNxVdX39RzMIJM1IZfhXC9-XEYwZ5i4JGa1uvK1dmreDPjWzBt0XHErgTPbXRjwy2c4lnKnar_oi-ZLPxMskZlJ-Kcobg7R_Nz-NkagYV2RDuKwP_37PiVFRV5P7awyrWK7S6GvL-Q0Pa4c3y63Kg8Vvl-PX77VdlIkI4knOGZDI9ppASqnQ2wCGYSwKM2DjRY29j69s_Sl8uDdug2KmL0F1spQoUE4yYPksKAI_yXFrKrmsBuwysGD65GyjLWdGmdMXnZ00ceURzeIprlclPeH_wrTQKmC4EeOGZh_FzBEwvU7GmeQrcKj7vMbSG8vrWVlJyiukPj2WPbJ2Dl_iV_Xtr3GyJDsjdItSTLA5fXgUQg_BRwpcTVbbrfiLJ-TnkW-W57VcgUt4fU-A5iwPm1P9BXq387UmFwa14IErSZYAhHcSjULR9IQiz32x9MppSvBL4oa1SHGwCklRRiQvqoaqQbG6stKVUt66_TaCRdAupJrTBFkP3wha0Y72kJt4Yu2FaOJ10HvOQXG0wzdDLBON6Mtk6ZaxQo-yvBZZnEmr85X2WNLNR2BJ_qb0qN5cFl-GA44Zu2aJkVvw6ND30OhGzQXEDaAL02YjCA1rUmTYEGuIIBb_aE_X6HJMQB356_BjDhoH861bh1t_jsW4MdqdHFnhaaCQBSiMrSkEks0qVIvrhAyAvyJV_qbKtdknfHUX6TaQ_-pbp7vZHM6uNA-NBkHJlE3T5AuqX6dCOBla_DB1oJ9X2_W9oF5ApH5uGBOy0NHsiSfnoBHxvXmKvYuVfnR1RM3Gt23xGsAdArGpBivuLG-vpzy7YlNYt_nrb8rw0FT0KG8YRPILjjn9TOWZI_bT37rGIAgiqRX0m0ayGL4Afj7ZW3nHmdlHGsx7x0AsYxoril3JIlXB5SFIkd0E7x_y7vTAbNoqHpqztjHkDPPEdWujnCgEhUasX5TMSSyQNsHONiw2rQmg93ZAV7WovNvQVo3b-4ppCjDFWRpjcpBsRZgG-WyJnpr3dtE_RIZarU7_2aDBnmWC46iVHfSQyw_u_tQPEImOTAKLVmHt_IqBoiCgTP5gPciycPqXu9gptlF8jHi9Zw-7pvW_DFWouo-9EM',
            responseAt: 2022-12-10T09:01:19.465Z,
            hasSolution: true,
            duration: 2.288
        }
    ]
}
puppeteer-extra-plugin:recaptcha _generateContentScript recaptcha enterRecaptchaSolutions {
    solutions: [
        {
            _vendor: 'recaptcha',
            provider: '2captcha',
            id: 'za5qgnk00ldj',
            requestAt: 2022-12-10T09:01:17.177Z,
            providerCaptchaId: '72267878173',
            text: '03AEkXODAdsSHFnLWZfzpbpJu1AOGLPkPIxXUHInfXhViJLcn8rOn-DJ4jIKV0uIfcBhsOpOMUFyHFQuaLNNznqVee6cXE1b6U1X6pKiJnxOhuRIPQO5J0owKiv6KK_v_C6nKb3cqTrfvFmEFl4A1fOh-ZNg_agiICvdx2AUkcmOr8KJAp4dVdUhguEpgP-JnAthH8TBWt4hjne74flB3VUfopFvjAQMqDwmzCDXqYU53yxvh80hqjsVRCh2CAyfX0L9yN5Wseb_VTHdvJZh-nNUHdIt5NsNa9HVYT9NI2qsta-2Bq_xb-m8tnoAWD9TJbaoQ8YCUZ7o2wWUYJb8Iie5o8-YpfMu8vn07sHW1nz0EJFLvkahJ5sdgtCBMWbM54Up5fdRGZssQmroa23UgJiTOIHVa4G30hwj4tUB6c9NVT3OYDvZ61pjaMbMBvs05pOPzeMsaxRVW40yLvgnUYmCZNJv9k4WEIEL_Q8svmYf6kVnOJP5eZCIbSkX8-2gc-vbuZE4kAhrtj0d4qx5jgWvkWAr0MQxp6K6-NGnow9_L1QjdzbDavTWYdS-ubP54N2p4q677yhmtC8c8ZXWJAowOgrXNxVdX39RzMIJM1IZfhXC9-XEYwZ5i4JGa1uvK1dmreDPjWzBt0XHErgTPbXRjwy2c4lnKnar_oi-ZLPxMskZlJ-Kcobg7R_Nz-NkagYV2RDuKwP_37PiVFRV5P7awyrWK7S6GvL-Q0Pa4c3y63Kg8Vvl-PX77VdlIkI4knOGZDI9ppASqnQ2wCGYSwKM2DjRY29j69s_Sl8uDdug2KmL0F1spQoUE4yYPksKAI_yXFrKrmsBuwysGD65GyjLWdGmdMXnZ00ceURzeIprlclPeH_wrTQKmC4EeOGZh_FzBEwvU7GmeQrcKj7vMbSG8vrWVlJyiukPj2WPbJ2Dl_iV_Xtr3GyJDsjdItSTLA5fXgUQg_BRwpcTVbbrfiLJ-TnkW-W57VcgUt4fU-A5iwPm1P9BXq387UmFwa14IErSZYAhHcSjULR9IQiz32x9MppSvBL4oa1SHGwCklRRiQvqoaqQbG6stKVUt66_TaCRdAupJrTBFkP3wha0Y72kJt4Yu2FaOJ10HvOQXG0wzdDLBON6Mtk6ZaxQo-yvBZZnEmr85X2WNLNR2BJ_qb0qN5cFl-GA44Zu2aJkVvw6ND30OhGzQXEDaAL02YjCA1rUmTYEGuIIBb_aE_X6HJMQB356_BjDhoH861bh1t_jsW4MdqdHFnhaaCQBSiMrSkEks0qVIvrhAyAvyJV_qbKtdknfHUX6TaQ_-pbp7vZHM6uNA-NBkHJlE3T5AuqX6dCOBla_DB1oJ9X2_W9oF5ApH5uGBOy0NHsiSfnoBHxvXmKvYuVfnR1RM3Gt23xGsAdArGpBivuLG-vpzy7YlNYt_nrb8rw0FT0KG8YRPILjjn9TOWZI_bT37rGIAgiqRX0m0ayGL4Afj7ZW3nHmdlHGsx7x0AsYxoril3JIlXB5SFIkd0E7x_y7vTAbNoqHpqztjHkDPPEdWujnCgEhUasX5TMSSyQNsHONiw2rQmg93ZAV7WovNvQVo3b-4ppCjDFWRpjcpBsRZgG-WyJnpr3dtE_RIZarU7_2aDBnmWC46iVHfSQyw_u_tQPEImOTAKLVmHt_IqBoiCgTP5gPciycPqXu9gptlF8jHi9Zw-7pvW_DFWouo-9EM',
            responseAt: 2022-12-10T09:01:19.465Z,
            hasSolution: true,
            duration: 2.288
        }
    ]
}
puppeteer-extra-plugin:recaptcha enterRecaptchaSolutions {
    solved: [
        {
            _vendor: 'recaptcha',
            id: 'za5qgnk00ldj',
            responseElement: true,
            responseCallback: false,
            error: {},
            isSolved: true,
            solvedAt: {}
        }
    ],
    error: {
        _vendor: 'recaptcha',
        id: 'za5qgnk00ldj',
        responseElement: true,
        responseCallback: false,
        error: {},
        isSolved: true,
        solvedAt: {}
    }
}
puppeteer-extra-plugin:recaptcha solveRecaptchas {
    captchas: [
        {
            sitekey: '6LdkZisUAAAAACQ1YvSn_fsTXRLoNCsiYuoKyDH7',
            callback: 'GoogleRecaptchaResolved-cce0b13e-8713-49a2-acd5-26d83e190888',
            _vendor: 'recaptcha',
            id: 'za5qgnk00ldj',
            s: null,
            widgetId: 0,
            display: [Object],
            url: 'myUrl',
            hasResponseElement: true,
            isEnterprise: false,
            isInViewport: true,
            isInvisible: true,
            _type: 'invisible',
            hasActiveChallengePopup: true,
            hasChallengeFrame: true
        }
    ],
    filtered: [],
    solutions: [
        {
            _vendor: 'recaptcha',
            provider: '2captcha',
            id: 'za5qgnk00ldj',
            requestAt: 2022-12-10T09:01:17.177Z,
            providerCaptchaId: '72267878173',
            text: '03AEkXODAdsSHFnLWZfzpbpJu1AOGLPkPIxXUHInfXhViJLcn8rOn-DJ4jIKV0uIfcBhsOpOMUFyHFQuaLNNznqVee6cXE1b6U1X6pKiJnxOhuRIPQO5J0owKiv6KK_v_C6nKb3cqTrfvFmEFl4A1fOh-ZNg_agiICvdx2AUkcmOr8KJAp4dVdUhguEpgP-JnAthH8TBWt4hjne74flB3VUfopFvjAQMqDwmzCDXqYU53yxvh80hqjsVRCh2CAyfX0L9yN5Wseb_VTHdvJZh-nNUHdIt5NsNa9HVYT9NI2qsta-2Bq_xb-m8tnoAWD9TJbaoQ8YCUZ7o2wWUYJb8Iie5o8-YpfMu8vn07sHW1nz0EJFLvkahJ5sdgtCBMWbM54Up5fdRGZssQmroa23UgJiTOIHVa4G30hwj4tUB6c9NVT3OYDvZ61pjaMbMBvs05pOPzeMsaxRVW40yLvgnUYmCZNJv9k4WEIEL_Q8svmYf6kVnOJP5eZCIbSkX8-2gc-vbuZE4kAhrtj0d4qx5jgWvkWAr0MQxp6K6-NGnow9_L1QjdzbDavTWYdS-ubP54N2p4q677yhmtC8c8ZXWJAowOgrXNxVdX39RzMIJM1IZfhXC9-XEYwZ5i4JGa1uvK1dmreDPjWzBt0XHErgTPbXRjwy2c4lnKnar_oi-ZLPxMskZlJ-Kcobg7R_Nz-NkagYV2RDuKwP_37PiVFRV5P7awyrWK7S6GvL-Q0Pa4c3y63Kg8Vvl-PX77VdlIkI4knOGZDI9ppASqnQ2wCGYSwKM2DjRY29j69s_Sl8uDdug2KmL0F1spQoUE4yYPksKAI_yXFrKrmsBuwysGD65GyjLWdGmdMXnZ00ceURzeIprlclPeH_wrTQKmC4EeOGZh_FzBEwvU7GmeQrcKj7vMbSG8vrWVlJyiukPj2WPbJ2Dl_iV_Xtr3GyJDsjdItSTLA5fXgUQg_BRwpcTVbbrfiLJ-TnkW-W57VcgUt4fU-A5iwPm1P9BXq387UmFwa14IErSZYAhHcSjULR9IQiz32x9MppSvBL4oa1SHGwCklRRiQvqoaqQbG6stKVUt66_TaCRdAupJrTBFkP3wha0Y72kJt4Yu2FaOJ10HvOQXG0wzdDLBON6Mtk6ZaxQo-yvBZZnEmr85X2WNLNR2BJ_qb0qN5cFl-GA44Zu2aJkVvw6ND30OhGzQXEDaAL02YjCA1rUmTYEGuIIBb_aE_X6HJMQB356_BjDhoH861bh1t_jsW4MdqdHFnhaaCQBSiMrSkEks0qVIvrhAyAvyJV_qbKtdknfHUX6TaQ_-pbp7vZHM6uNA-NBkHJlE3T5AuqX6dCOBla_DB1oJ9X2_W9oF5ApH5uGBOy0NHsiSfnoBHxvXmKvYuVfnR1RM3Gt23xGsAdArGpBivuLG-vpzy7YlNYt_nrb8rw0FT0KG8YRPILjjn9TOWZI_bT37rGIAgiqRX0m0ayGL4Afj7ZW3nHmdlHGsx7x0AsYxoril3JIlXB5SFIkd0E7x_y7vTAbNoqHpqztjHkDPPEdWujnCgEhUasX5TMSSyQNsHONiw2rQmg93ZAV7WovNvQVo3b-4ppCjDFWRpjcpBsRZgG-WyJnpr3dtE_RIZarU7_2aDBnmWC46iVHfSQyw_u_tQPEImOTAKLVmHt_IqBoiCgTP5gPciycPqXu9gptlF8jHi9Zw-7pvW_DFWouo-9EM',
            responseAt: 2022-12-10T09:01:19.465Z,
            hasSolution: true,
            duration: 2.288
        }
    ],
    solved: [
        {
            _vendor: 'recaptcha',
            id: 'za5qgnk00ldj',
            responseElement: true,
            responseCallback: false,
            error: {},
            isSolved: true,
            solvedAt: {}
        }
    ],
    error: {
            _vendor: 'recaptcha',
            id: 'za5qgnk00ldj',
            responseElement: true,
            responseCallback: false,
            error: {},
            isSolved: true,
            solvedAt: {}
        }
    }
    captcharesult : {
    captchas: [
        {
            sitekey: '6LdkZisUAAAAACQ1YvSn_fsTXRLoNCsiYuoKyDH7',
            callback: 'GoogleRecaptchaResolved-cce0b13e-8713-49a2-acd5-26d83e190888',
            _vendor: 'recaptcha',
            id: 'za5qgnk00ldj',
            s: null,
            widgetId: 0,
            display: [Object],
            url: 'myUrl',
            hasResponseElement: true,
            isEnterprise: false,
            isInViewport: true,
            isInvisible: true,
            _type: 'invisible',
            hasActiveChallengePopup: true,
            hasChallengeFrame: true
        }
    ],
    filtered: [],
    solutions: [
        {
            _vendor: 'recaptcha',
            provider: '2captcha',
            id: 'za5qgnk00ldj',
            requestAt: 2022-12-10T09:01:17.177Z,
            providerCaptchaId: '72267878173',
            text: '03AEkXODAdsSHFnLWZfzpbpJu1AOGLPkPIxXUHInfXhViJLcn8rOn-DJ4jIKV0uIfcBhsOpOMUFyHFQuaLNNznqVee6cXE1b6U1X6pKiJnxOhuRIPQO5J0owKiv6KK_v_C6nKb3cqTrfvFmEFl4A1fOh-ZNg_agiICvdx2AUkcmOr8KJAp4dVdUhguEpgP-JnAthH8TBWt4hjne74flB3VUfopFvjAQMqDwmzCDXqYU53yxvh80hqjsVRCh2CAyfX0L9yN5Wseb_VTHdvJZh-nNUHdIt5NsNa9HVYT9NI2qsta-2Bq_xb-m8tnoAWD9TJbaoQ8YCUZ7o2wWUYJb8Iie5o8-YpfMu8vn07sHW1nz0EJFLvkahJ5sdgtCBMWbM54Up5fdRGZssQmroa23UgJiTOIHVa4G30hwj4tUB6c9NVT3OYDvZ61pjaMbMBvs05pOPzeMsaxRVW40yLvgnUYmCZNJv9k4WEIEL_Q8svmYf6kVnOJP5eZCIbSkX8-2gc-vbuZE4kAhrtj0d4qx5jgWvkWAr0MQxp6K6-NGnow9_L1QjdzbDavTWYdS-ubP54N2p4q677yhmtC8c8ZXWJAowOgrXNxVdX39RzMIJM1IZfhXC9-XEYwZ5i4JGa1uvK1dmreDPjWzBt0XHErgTPbXRjwy2c4lnKnar_oi-ZLPxMskZlJ-Kcobg7R_Nz-NkagYV2RDuKwP_37PiVFRV5P7awyrWK7S6GvL-Q0Pa4c3y63Kg8Vvl-PX77VdlIkI4knOGZDI9ppASqnQ2wCGYSwKM2DjRY29j69s_Sl8uDdug2KmL0F1spQoUE4yYPksKAI_yXFrKrmsBuwysGD65GyjLWdGmdMXnZ00ceURzeIprlclPeH_wrTQKmC4EeOGZh_FzBEwvU7GmeQrcKj7vMbSG8vrWVlJyiukPj2WPbJ2Dl_iV_Xtr3GyJDsjdItSTLA5fXgUQg_BRwpcTVbbrfiLJ-TnkW-W57VcgUt4fU-A5iwPm1P9BXq387UmFwa14IErSZYAhHcSjULR9IQiz32x9MppSvBL4oa1SHGwCklRRiQvqoaqQbG6stKVUt66_TaCRdAupJrTBFkP3wha0Y72kJt4Yu2FaOJ10HvOQXG0wzdDLBON6Mtk6ZaxQo-yvBZZnEmr85X2WNLNR2BJ_qb0qN5cFl-GA44Zu2aJkVvw6ND30OhGzQXEDaAL02YjCA1rUmTYEGuIIBb_aE_X6HJMQB356_BjDhoH861bh1t_jsW4MdqdHFnhaaCQBSiMrSkEks0qVIvrhAyAvyJV_qbKtdknfHUX6TaQ_-pbp7vZHM6uNA-NBkHJlE3T5AuqX6dCOBla_DB1oJ9X2_W9oF5ApH5uGBOy0NHsiSfnoBHxvXmKvYuVfnR1RM3Gt23xGsAdArGpBivuLG-vpzy7YlNYt_nrb8rw0FT0KG8YRPILjjn9TOWZI_bT37rGIAgiqRX0m0ayGL4Afj7ZW3nHmdlHGsx7x0AsYxoril3JIlXB5SFIkd0E7x_y7vTAbNoqHpqztjHkDPPEdWujnCgEhUasX5TMSSyQNsHONiw2rQmg93ZAV7WovNvQVo3b-4ppCjDFWRpjcpBsRZgG-WyJnpr3dtE_RIZarU7_2aDBnmWC46iVHfSQyw_u_tQPEImOTAKLVmHt_IqBoiCgTP5gPciycPqXu9gptlF8jHi9Zw-7pvW_DFWouo-9EM',
            responseAt: 2022-12-10T09:01:19.465Z,
            hasSolution: true,
            duration: 2.288
        }
    ],
    solved: [
        {
            _vendor: 'recaptcha',
            id: 'za5qgnk00ldj',
            responseElement: true,
            responseCallback: false,
            error: {},
            isSolved: true,
            solvedAt: {}
        }
    ],
    error: {
        _vendor: 'recaptcha',
        id: 'za5qgnk00ldj',
        responseElement: true,
        responseCallback: false,
        error: {},
        isSolved: true,
        solvedAt: {}
    }
}
</code>```

Any reasons why entering the solution might fail?

Body:
I am trying to solve a captcha with puppeteer-extra-plugin-recaptcha.

When I run chrome with headless = false I can see that the recaptcha appears and gets solved.
The problem is, that after the captcha field disappears, nothing happens.

The logs of the puppeteer-extra plugin tell me that the captcha has been solved but the captcha id also appears in the "errors" array. These are the logs:

puppeteer-extra plugin registered stealth
puppeteer-extra-plugin:recaptcha Initialized {
    visualFeedback: false,
    throwOnError: false,
    solveInViewportOnly: false,
    solveScoreBased: false,
    solveInactiveChallenges: false,
    provider: { id: '2captcha', token: 'myToken' }
}
puppeteer-extra plugin registered recaptcha
puppeteer-extra dependencies missing Set(16) {
    'stealth/evasions/chrome.app',
    'stealth/evasions/chrome.csi',
    'stealth/evasions/chrome.loadTimes',
    'stealth/evasions/chrome.runtime',
    'stealth/evasions/defaultArgs',
    'stealth/evasions/iframe.contentWindow',
    'stealth/evasions/media.codecs',
    'stealth/evasions/navigator.hardwareConcurrency',
    'stealth/evasions/navigator.languages',
    'stealth/evasions/navigator.permissions',
    'stealth/evasions/navigator.plugins',
    'stealth/evasions/navigator.webdriver',
    'stealth/evasions/sourceurl',
    'stealth/evasions/user-agent-override',
    'stealth/evasions/webgl.vendor',
    'stealth/evasions/window.outerdimensions'
}
puppeteer-extra plugin registered stealth/evasions/chrome.app
puppeteer-extra plugin registered stealth/evasions/chrome.csi
puppeteer-extra plugin registered stealth/evasions/chrome.loadTimes
puppeteer-extra plugin registered stealth/evasions/chrome.runtime
puppeteer-extra plugin registered stealth/evasions/defaultArgs
puppeteer-extra plugin registered stealth/evasions/iframe.contentWindow
puppeteer-extra plugin registered stealth/evasions/media.codecs
puppeteer-extra plugin registered stealth/evasions/navigator.hardwareConcurrency
puppeteer-extra plugin registered stealth/evasions/navigator.languages
puppeteer-extra plugin registered stealth/evasions/navigator.permissions
puppeteer-extra plugin registered stealth/evasions/navigator.plugins
puppeteer-extra plugin registered stealth/evasions/navigator.webdriver
puppeteer-extra plugin registered stealth/evasions/sourceurl
puppeteer-extra plugin registered stealth/evasions/user-agent-override
puppeteer-extra dependencies missing Set(3) {
    'stealth/evasions/webgl.vendor',
    'stealth/evasions/window.outerdimensions',
    'user-preferences'
}
puppeteer-extra plugin registered stealth/evasions/webgl.vendor
puppeteer-extra plugin registered stealth/evasions/window.outerdimensions
puppeteer-extra plugin registered user-preferences
puppeteer-extra dependencies missing Set(1) { 'user-data-dir' }
puppeteer-extra plugin registered user-data-dir
puppeteer-extra ignoring dependency 'stealth/evasions/webgl.vendor', which has been required already.
puppeteer-extra ignoring dependency 'stealth/evasions/window.outerdimensions', which has been required already.
puppeteer-extra orderPlugins:before [
    'stealth',
    'recaptcha',
    'stealth/evasions/chrome.app',
    'stealth/evasions/chrome.csi',
    'stealth/evasions/chrome.loadTimes',
    'stealth/evasions/chrome.runtime',
    'stealth/evasions/defaultArgs',
    'stealth/evasions/iframe.contentWindow',
    'stealth/evasions/media.codecs',
    'stealth/evasions/navigator.hardwareConcurrency',
    'stealth/evasions/navigator.languages',
    'stealth/evasions/navigator.permissions',
    'stealth/evasions/navigator.plugins',
    'stealth/evasions/navigator.webdriver',
    'stealth/evasions/sourceurl',
    'stealth/evasions/user-agent-override',
    'stealth/evasions/webgl.vendor',
    'stealth/evasions/window.outerdimensions',
    'user-preferences',
    'user-data-dir'
]
puppeteer-extra orderPlugins:after [
    'stealth',
    'recaptcha',
    'stealth/evasions/chrome.app',
    'stealth/evasions/chrome.csi',
    'stealth/evasions/chrome.loadTimes',
    'stealth/evasions/chrome.runtime',
    'stealth/evasions/media.codecs',
    'stealth/evasions/navigator.hardwareConcurrency',
    'stealth/evasions/navigator.languages',
    'stealth/evasions/navigator.permissions',
    'stealth/evasions/navigator.plugins',
    'stealth/evasions/navigator.webdriver',
    'stealth/evasions/sourceurl',
    'stealth/evasions/user-agent-override',
    'stealth/evasions/webgl.vendor',
    'stealth/evasions/window.outerdimensions',
    'stealth/evasions/defaultArgs',
    'stealth/evasions/iframe.contentWindow',
    'user-preferences',
    'user-data-dir'
]
puppeteer-extra-plugin:recaptcha onPageCreated about:blank
puppeteer-extra-plugin:recaptcha solveRecaptchas
puppeteer-extra-plugin:recaptcha findRecaptchas
puppeteer-extra-plugin:recaptcha hasRecaptchaScriptTag true
puppeteer-extra-plugin:recaptcha waitForRecaptchaClient - start 2022-12-10T09:01:16.951Z
puppeteer-extra-plugin:recaptcha waitForRecaptchaClient - end 2022-12-10T09:01:17.095Z
puppeteer-extra-plugin:recaptcha hasHcaptchaScriptTag false
puppeteer-extra-plugin:recaptcha _generateContentScript recaptcha findRecaptchas undefined
puppeteer-extra-plugin:recaptcha _generateContentScript hcaptcha findRecaptchas undefined
puppeteer-extra-plugin:recaptcha Filter results: 0 of 1 captchas filtered from results.
puppeteer-extra-plugin:recaptcha findRecaptchas {
captchas: [
    {
        sitekey: '6LdkZisUAAAAACQ1YvSn_fsTXRLoNCsiYuoKyDH7',
        callback: 'GoogleRecaptchaResolved-cce0b13e-8713-49a2-acd5-26d83e190888',
        _vendor: 'recaptcha',
        id: 'za5qgnk00ldj',
        s: null,
        widgetId: 0,
        display: [Object],
        url: 'myUrl',
        hasResponseElement: true,
        isEnterprise: false,
        isInViewport: true,
        isInvisible: true,
        _type: 'invisible',
        hasActiveChallengePopup: true,
        hasChallengeFrame: true
    }
],
filtered: [],
error: null
}
puppeteer-extra-plugin:recaptcha getRecaptchaSolutions { captchaNum: 1 }
puppeteer-extra-plugin:recaptcha getRecaptchaSolutions {
    solutions: [
        {
            _vendor: 'recaptcha',
            provider: '2captcha',
            id: 'za5qgnk00ldj',
            requestAt: 2022-12-10T09:01:17.177Z,
            providerCaptchaId: '72267878173',
            text: '03AEkXODAdsSHFnLWZfzpbpJu1AOGLPkPIxXUHInfXhViJLcn8rOn-DJ4jIKV0uIfcBhsOpOMUFyHFQuaLNNznqVee6cXE1b6U1X6pKiJnxOhuRIPQO5J0owKiv6KK_v_C6nKb3cqTrfvFmEFl4A1fOh-ZNg_agiICvdx2AUkcmOr8KJAp4dVdUhguEpgP-JnAthH8TBWt4hjne74flB3VUfopFvjAQMqDwmzCDXqYU53yxvh80hqjsVRCh2CAyfX0L9yN5Wseb_VTHdvJZh-nNUHdIt5NsNa9HVYT9NI2qsta-2Bq_xb-m8tnoAWD9TJbaoQ8YCUZ7o2wWUYJb8Iie5o8-YpfMu8vn07sHW1nz0EJFLvkahJ5sdgtCBMWbM54Up5fdRGZssQmroa23UgJiTOIHVa4G30hwj4tUB6c9NVT3OYDvZ61pjaMbMBvs05pOPzeMsaxRVW40yLvgnUYmCZNJv9k4WEIEL_Q8svmYf6kVnOJP5eZCIbSkX8-2gc-vbuZE4kAhrtj0d4qx5jgWvkWAr0MQxp6K6-NGnow9_L1QjdzbDavTWYdS-ubP54N2p4q677yhmtC8c8ZXWJAowOgrXNxVdX39RzMIJM1IZfhXC9-XEYwZ5i4JGa1uvK1dmreDPjWzBt0XHErgTPbXRjwy2c4lnKnar_oi-ZLPxMskZlJ-Kcobg7R_Nz-NkagYV2RDuKwP_37PiVFRV5P7awyrWK7S6GvL-Q0Pa4c3y63Kg8Vvl-PX77VdlIkI4knOGZDI9ppASqnQ2wCGYSwKM2DjRY29j69s_Sl8uDdug2KmL0F1spQoUE4yYPksKAI_yXFrKrmsBuwysGD65GyjLWdGmdMXnZ00ceURzeIprlclPeH_wrTQKmC4EeOGZh_FzBEwvU7GmeQrcKj7vMbSG8vrWVlJyiukPj2WPbJ2Dl_iV_Xtr3GyJDsjdItSTLA5fXgUQg_BRwpcTVbbrfiLJ-TnkW-W57VcgUt4fU-A5iwPm1P9BXq387UmFwa14IErSZYAhHcSjULR9IQiz32x9MppSvBL4oa1SHGwCklRRiQvqoaqQbG6stKVUt66_TaCRdAupJrTBFkP3wha0Y72kJt4Yu2FaOJ10HvOQXG0wzdDLBON6Mtk6ZaxQo-yvBZZnEmr85X2WNLNR2BJ_qb0qN5cFl-GA44Zu2aJkVvw6ND30OhGzQXEDaAL02YjCA1rUmTYEGuIIBb_aE_X6HJMQB356_BjDhoH861bh1t_jsW4MdqdHFnhaaCQBSiMrSkEks0qVIvrhAyAvyJV_qbKtdknfHUX6TaQ_-pbp7vZHM6uNA-NBkHJlE3T5AuqX6dCOBla_DB1oJ9X2_W9oF5ApH5uGBOy0NHsiSfnoBHxvXmKvYuVfnR1RM3Gt23xGsAdArGpBivuLG-vpzy7YlNYt_nrb8rw0FT0KG8YRPILjjn9TOWZI_bT37rGIAgiqRX0m0ayGL4Afj7ZW3nHmdlHGsx7x0AsYxoril3JIlXB5SFIkd0E7x_y7vTAbNoqHpqztjHkDPPEdWujnCgEhUasX5TMSSyQNsHONiw2rQmg93ZAV7WovNvQVo3b-4ppCjDFWRpjcpBsRZgG-WyJnpr3dtE_RIZarU7_2aDBnmWC46iVHfSQyw_u_tQPEImOTAKLVmHt_IqBoiCgTP5gPciycPqXu9gptlF8jHi9Zw-7pvW_DFWouo-9EM',
            responseAt: 2022-12-10T09:01:19.465Z,
            hasSolution: true,
            duration: 2.288
        }
    ],
    error: undefined
}
puppeteer-extra-plugin:recaptcha enterRecaptchaSolutions {
    solutions: [
        {
            _vendor: 'recaptcha',
            provider: '2captcha',
            id: 'za5qgnk00ldj',
            requestAt: 2022-12-10T09:01:17.177Z,
            providerCaptchaId: '72267878173',
            text: '03AEkXODAdsSHFnLWZfzpbpJu1AOGLPkPIxXUHInfXhViJLcn8rOn-DJ4jIKV0uIfcBhsOpOMUFyHFQuaLNNznqVee6cXE1b6U1X6pKiJnxOhuRIPQO5J0owKiv6KK_v_C6nKb3cqTrfvFmEFl4A1fOh-ZNg_agiICvdx2AUkcmOr8KJAp4dVdUhguEpgP-JnAthH8TBWt4hjne74flB3VUfopFvjAQMqDwmzCDXqYU53yxvh80hqjsVRCh2CAyfX0L9yN5Wseb_VTHdvJZh-nNUHdIt5NsNa9HVYT9NI2qsta-2Bq_xb-m8tnoAWD9TJbaoQ8YCUZ7o2wWUYJb8Iie5o8-YpfMu8vn07sHW1nz0EJFLvkahJ5sdgtCBMWbM54Up5fdRGZssQmroa23UgJiTOIHVa4G30hwj4tUB6c9NVT3OYDvZ61pjaMbMBvs05pOPzeMsaxRVW40yLvgnUYmCZNJv9k4WEIEL_Q8svmYf6kVnOJP5eZCIbSkX8-2gc-vbuZE4kAhrtj0d4qx5jgWvkWAr0MQxp6K6-NGnow9_L1QjdzbDavTWYdS-ubP54N2p4q677yhmtC8c8ZXWJAowOgrXNxVdX39RzMIJM1IZfhXC9-XEYwZ5i4JGa1uvK1dmreDPjWzBt0XHErgTPbXRjwy2c4lnKnar_oi-ZLPxMskZlJ-Kcobg7R_Nz-NkagYV2RDuKwP_37PiVFRV5P7awyrWK7S6GvL-Q0Pa4c3y63Kg8Vvl-PX77VdlIkI4knOGZDI9ppASqnQ2wCGYSwKM2DjRY29j69s_Sl8uDdug2KmL0F1spQoUE4yYPksKAI_yXFrKrmsBuwysGD65GyjLWdGmdMXnZ00ceURzeIprlclPeH_wrTQKmC4EeOGZh_FzBEwvU7GmeQrcKj7vMbSG8vrWVlJyiukPj2WPbJ2Dl_iV_Xtr3GyJDsjdItSTLA5fXgUQg_BRwpcTVbbrfiLJ-TnkW-W57VcgUt4fU-A5iwPm1P9BXq387UmFwa14IErSZYAhHcSjULR9IQiz32x9MppSvBL4oa1SHGwCklRRiQvqoaqQbG6stKVUt66_TaCRdAupJrTBFkP3wha0Y72kJt4Yu2FaOJ10HvOQXG0wzdDLBON6Mtk6ZaxQo-yvBZZnEmr85X2WNLNR2BJ_qb0qN5cFl-GA44Zu2aJkVvw6ND30OhGzQXEDaAL02YjCA1rUmTYEGuIIBb_aE_X6HJMQB356_BjDhoH861bh1t_jsW4MdqdHFnhaaCQBSiMrSkEks0qVIvrhAyAvyJV_qbKtdknfHUX6TaQ_-pbp7vZHM6uNA-NBkHJlE3T5AuqX6dCOBla_DB1oJ9X2_W9oF5ApH5uGBOy0NHsiSfnoBHxvXmKvYuVfnR1RM3Gt23xGsAdArGpBivuLG-vpzy7YlNYt_nrb8rw0FT0KG8YRPILjjn9TOWZI_bT37rGIAgiqRX0m0ayGL4Afj7ZW3nHmdlHGsx7x0AsYxoril3JIlXB5SFIkd0E7x_y7vTAbNoqHpqztjHkDPPEdWujnCgEhUasX5TMSSyQNsHONiw2rQmg93ZAV7WovNvQVo3b-4ppCjDFWRpjcpBsRZgG-WyJnpr3dtE_RIZarU7_2aDBnmWC46iVHfSQyw_u_tQPEImOTAKLVmHt_IqBoiCgTP5gPciycPqXu9gptlF8jHi9Zw-7pvW_DFWouo-9EM',
            responseAt: 2022-12-10T09:01:19.465Z,
            hasSolution: true,
            duration: 2.288
        }
    ]
}
puppeteer-extra-plugin:recaptcha _generateContentScript recaptcha enterRecaptchaSolutions {
    solutions: [
        {
            _vendor: 'recaptcha',
            provider: '2captcha',
            id: 'za5qgnk00ldj',
            requestAt: 2022-12-10T09:01:17.177Z,
            providerCaptchaId: '72267878173',
            text: '03AEkXODAdsSHFnLWZfzpbpJu1AOGLPkPIxXUHInfXhViJLcn8rOn-DJ4jIKV0uIfcBhsOpOMUFyHFQuaLNNznqVee6cXE1b6U1X6pKiJnxOhuRIPQO5J0owKiv6KK_v_C6nKb3cqTrfvFmEFl4A1fOh-ZNg_agiICvdx2AUkcmOr8KJAp4dVdUhguEpgP-JnAthH8TBWt4hjne74flB3VUfopFvjAQMqDwmzCDXqYU53yxvh80hqjsVRCh2CAyfX0L9yN5Wseb_VTHdvJZh-nNUHdIt5NsNa9HVYT9NI2qsta-2Bq_xb-m8tnoAWD9TJbaoQ8YCUZ7o2wWUYJb8Iie5o8-YpfMu8vn07sHW1nz0EJFLvkahJ5sdgtCBMWbM54Up5fdRGZssQmroa23UgJiTOIHVa4G30hwj4tUB6c9NVT3OYDvZ61pjaMbMBvs05pOPzeMsaxRVW40yLvgnUYmCZNJv9k4WEIEL_Q8svmYf6kVnOJP5eZCIbSkX8-2gc-vbuZE4kAhrtj0d4qx5jgWvkWAr0MQxp6K6-NGnow9_L1QjdzbDavTWYdS-ubP54N2p4q677yhmtC8c8ZXWJAowOgrXNxVdX39RzMIJM1IZfhXC9-XEYwZ5i4JGa1uvK1dmreDPjWzBt0XHErgTPbXRjwy2c4lnKnar_oi-ZLPxMskZlJ-Kcobg7R_Nz-NkagYV2RDuKwP_37PiVFRV5P7awyrWK7S6GvL-Q0Pa4c3y63Kg8Vvl-PX77VdlIkI4knOGZDI9ppASqnQ2wCGYSwKM2DjRY29j69s_Sl8uDdug2KmL0F1spQoUE4yYPksKAI_yXFrKrmsBuwysGD65GyjLWdGmdMXnZ00ceURzeIprlclPeH_wrTQKmC4EeOGZh_FzBEwvU7GmeQrcKj7vMbSG8vrWVlJyiukPj2WPbJ2Dl_iV_Xtr3GyJDsjdItSTLA5fXgUQg_BRwpcTVbbrfiLJ-TnkW-W57VcgUt4fU-A5iwPm1P9BXq387UmFwa14IErSZYAhHcSjULR9IQiz32x9MppSvBL4oa1SHGwCklRRiQvqoaqQbG6stKVUt66_TaCRdAupJrTBFkP3wha0Y72kJt4Yu2FaOJ10HvOQXG0wzdDLBON6Mtk6ZaxQo-yvBZZnEmr85X2WNLNR2BJ_qb0qN5cFl-GA44Zu2aJkVvw6ND30OhGzQXEDaAL02YjCA1rUmTYEGuIIBb_aE_X6HJMQB356_BjDhoH861bh1t_jsW4MdqdHFnhaaCQBSiMrSkEks0qVIvrhAyAvyJV_qbKtdknfHUX6TaQ_-pbp7vZHM6uNA-NBkHJlE3T5AuqX6dCOBla_DB1oJ9X2_W9oF5ApH5uGBOy0NHsiSfnoBHxvXmKvYuVfnR1RM3Gt23xGsAdArGpBivuLG-vpzy7YlNYt_nrb8rw0FT0KG8YRPILjjn9TOWZI_bT37rGIAgiqRX0m0ayGL4Afj7ZW3nHmdlHGsx7x0AsYxoril3JIlXB5SFIkd0E7x_y7vTAbNoqHpqztjHkDPPEdWujnCgEhUasX5TMSSyQNsHONiw2rQmg93ZAV7WovNvQVo3b-4ppCjDFWRpjcpBsRZgG-WyJnpr3dtE_RIZarU7_2aDBnmWC46iVHfSQyw_u_tQPEImOTAKLVmHt_IqBoiCgTP5gPciycPqXu9gptlF8jHi9Zw-7pvW_DFWouo-9EM',
            responseAt: 2022-12-10T09:01:19.465Z,
            hasSolution: true,
            duration: 2.288
        }
    ]
}
puppeteer-extra-plugin:recaptcha enterRecaptchaSolutions {
    solved: [
        {
            _vendor: 'recaptcha',
            id: 'za5qgnk00ldj',
            responseElement: true,
            responseCallback: false,
            error: {},
            isSolved: true,
            solvedAt: {}
        }
    ],
    error: {
        _vendor: 'recaptcha',
        id: 'za5qgnk00ldj',
        responseElement: true,
        responseCallback: false,
        error: {},
        isSolved: true,
        solvedAt: {}
    }
}
puppeteer-extra-plugin:recaptcha solveRecaptchas {
    captchas: [
        {
            sitekey: '6LdkZisUAAAAACQ1YvSn_fsTXRLoNCsiYuoKyDH7',
            callback: 'GoogleRecaptchaResolved-cce0b13e-8713-49a2-acd5-26d83e190888',
            _vendor: 'recaptcha',
            id: 'za5qgnk00ldj',
            s: null,
            widgetId: 0,
            display: [Object],
            url: 'myUrl',
            hasResponseElement: true,
            isEnterprise: false,
            isInViewport: true,
            isInvisible: true,
            _type: 'invisible',
            hasActiveChallengePopup: true,
            hasChallengeFrame: true
        }
    ],
    filtered: [],
    solutions: [
        {
            _vendor: 'recaptcha',
            provider: '2captcha',
            id: 'za5qgnk00ldj',
            requestAt: 2022-12-10T09:01:17.177Z,
            providerCaptchaId: '72267878173',
            text: '03AEkXODAdsSHFnLWZfzpbpJu1AOGLPkPIxXUHInfXhViJLcn8rOn-DJ4jIKV0uIfcBhsOpOMUFyHFQuaLNNznqVee6cXE1b6U1X6pKiJnxOhuRIPQO5J0owKiv6KK_v_C6nKb3cqTrfvFmEFl4A1fOh-ZNg_agiICvdx2AUkcmOr8KJAp4dVdUhguEpgP-JnAthH8TBWt4hjne74flB3VUfopFvjAQMqDwmzCDXqYU53yxvh80hqjsVRCh2CAyfX0L9yN5Wseb_VTHdvJZh-nNUHdIt5NsNa9HVYT9NI2qsta-2Bq_xb-m8tnoAWD9TJbaoQ8YCUZ7o2wWUYJb8Iie5o8-YpfMu8vn07sHW1nz0EJFLvkahJ5sdgtCBMWbM54Up5fdRGZssQmroa23UgJiTOIHVa4G30hwj4tUB6c9NVT3OYDvZ61pjaMbMBvs05pOPzeMsaxRVW40yLvgnUYmCZNJv9k4WEIEL_Q8svmYf6kVnOJP5eZCIbSkX8-2gc-vbuZE4kAhrtj0d4qx5jgWvkWAr0MQxp6K6-NGnow9_L1QjdzbDavTWYdS-ubP54N2p4q677yhmtC8c8ZXWJAowOgrXNxVdX39RzMIJM1IZfhXC9-XEYwZ5i4JGa1uvK1dmreDPjWzBt0XHErgTPbXRjwy2c4lnKnar_oi-ZLPxMskZlJ-Kcobg7R_Nz-NkagYV2RDuKwP_37PiVFRV5P7awyrWK7S6GvL-Q0Pa4c3y63Kg8Vvl-PX77VdlIkI4knOGZDI9ppASqnQ2wCGYSwKM2DjRY29j69s_Sl8uDdug2KmL0F1spQoUE4yYPksKAI_yXFrKrmsBuwysGD65GyjLWdGmdMXnZ00ceURzeIprlclPeH_wrTQKmC4EeOGZh_FzBEwvU7GmeQrcKj7vMbSG8vrWVlJyiukPj2WPbJ2Dl_iV_Xtr3GyJDsjdItSTLA5fXgUQg_BRwpcTVbbrfiLJ-TnkW-W57VcgUt4fU-A5iwPm1P9BXq387UmFwa14IErSZYAhHcSjULR9IQiz32x9MppSvBL4oa1SHGwCklRRiQvqoaqQbG6stKVUt66_TaCRdAupJrTBFkP3wha0Y72kJt4Yu2FaOJ10HvOQXG0wzdDLBON6Mtk6ZaxQo-yvBZZnEmr85X2WNLNR2BJ_qb0qN5cFl-GA44Zu2aJkVvw6ND30OhGzQXEDaAL02YjCA1rUmTYEGuIIBb_aE_X6HJMQB356_BjDhoH861bh1t_jsW4MdqdHFnhaaCQBSiMrSkEks0qVIvrhAyAvyJV_qbKtdknfHUX6TaQ_-pbp7vZHM6uNA-NBkHJlE3T5AuqX6dCOBla_DB1oJ9X2_W9oF5ApH5uGBOy0NHsiSfnoBHxvXmKvYuVfnR1RM3Gt23xGsAdArGpBivuLG-vpzy7YlNYt_nrb8rw0FT0KG8YRPILjjn9TOWZI_bT37rGIAgiqRX0m0ayGL4Afj7ZW3nHmdlHGsx7x0AsYxoril3JIlXB5SFIkd0E7x_y7vTAbNoqHpqztjHkDPPEdWujnCgEhUasX5TMSSyQNsHONiw2rQmg93ZAV7WovNvQVo3b-4ppCjDFWRpjcpBsRZgG-WyJnpr3dtE_RIZarU7_2aDBnmWC46iVHfSQyw_u_tQPEImOTAKLVmHt_IqBoiCgTP5gPciycPqXu9gptlF8jHi9Zw-7pvW_DFWouo-9EM',
            responseAt: 2022-12-10T09:01:19.465Z,
            hasSolution: true,
            duration: 2.288
        }
    ],
    solved: [
        {
            _vendor: 'recaptcha',
            id: 'za5qgnk00ldj',
            responseElement: true,
            responseCallback: false,
            error: {},
            isSolved: true,
            solvedAt: {}
        }
    ],
    error: {
            _vendor: 'recaptcha',
            id: 'za5qgnk00ldj',
            responseElement: true,
            responseCallback: false,
            error: {},
            isSolved: true,
            solvedAt: {}
        }
    }
    captcharesult : {
    captchas: [
        {
            sitekey: '6LdkZisUAAAAACQ1YvSn_fsTXRLoNCsiYuoKyDH7',
            callback: 'GoogleRecaptchaResolved-cce0b13e-8713-49a2-acd5-26d83e190888',
            _vendor: 'recaptcha',
            id: 'za5qgnk00ldj',
            s: null,
            widgetId: 0,
            display: [Object],
            url: 'myUrl',
            hasResponseElement: true,
            isEnterprise: false,
            isInViewport: true,
            isInvisible: true,
            _type: 'invisible',
            hasActiveChallengePopup: true,
            hasChallengeFrame: true
        }
    ],
    filtered: [],
    solutions: [
        {
            _vendor: 'recaptcha',
            provider: '2captcha',
            id: 'za5qgnk00ldj',
            requestAt: 2022-12-10T09:01:17.177Z,
            providerCaptchaId: '72267878173',
            text: '03AEkXODAdsSHFnLWZfzpbpJu1AOGLPkPIxXUHInfXhViJLcn8rOn-DJ4jIKV0uIfcBhsOpOMUFyHFQuaLNNznqVee6cXE1b6U1X6pKiJnxOhuRIPQO5J0owKiv6KK_v_C6nKb3cqTrfvFmEFl4A1fOh-ZNg_agiICvdx2AUkcmOr8KJAp4dVdUhguEpgP-JnAthH8TBWt4hjne74flB3VUfopFvjAQMqDwmzCDXqYU53yxvh80hqjsVRCh2CAyfX0L9yN5Wseb_VTHdvJZh-nNUHdIt5NsNa9HVYT9NI2qsta-2Bq_xb-m8tnoAWD9TJbaoQ8YCUZ7o2wWUYJb8Iie5o8-YpfMu8vn07sHW1nz0EJFLvkahJ5sdgtCBMWbM54Up5fdRGZssQmroa23UgJiTOIHVa4G30hwj4tUB6c9NVT3OYDvZ61pjaMbMBvs05pOPzeMsaxRVW40yLvgnUYmCZNJv9k4WEIEL_Q8svmYf6kVnOJP5eZCIbSkX8-2gc-vbuZE4kAhrtj0d4qx5jgWvkWAr0MQxp6K6-NGnow9_L1QjdzbDavTWYdS-ubP54N2p4q677yhmtC8c8ZXWJAowOgrXNxVdX39RzMIJM1IZfhXC9-XEYwZ5i4JGa1uvK1dmreDPjWzBt0XHErgTPbXRjwy2c4lnKnar_oi-ZLPxMskZlJ-Kcobg7R_Nz-NkagYV2RDuKwP_37PiVFRV5P7awyrWK7S6GvL-Q0Pa4c3y63Kg8Vvl-PX77VdlIkI4knOGZDI9ppASqnQ2wCGYSwKM2DjRY29j69s_Sl8uDdug2KmL0F1spQoUE4yYPksKAI_yXFrKrmsBuwysGD65GyjLWdGmdMXnZ00ceURzeIprlclPeH_wrTQKmC4EeOGZh_FzBEwvU7GmeQrcKj7vMbSG8vrWVlJyiukPj2WPbJ2Dl_iV_Xtr3GyJDsjdItSTLA5fXgUQg_BRwpcTVbbrfiLJ-TnkW-W57VcgUt4fU-A5iwPm1P9BXq387UmFwa14IErSZYAhHcSjULR9IQiz32x9MppSvBL4oa1SHGwCklRRiQvqoaqQbG6stKVUt66_TaCRdAupJrTBFkP3wha0Y72kJt4Yu2FaOJ10HvOQXG0wzdDLBON6Mtk6ZaxQo-yvBZZnEmr85X2WNLNR2BJ_qb0qN5cFl-GA44Zu2aJkVvw6ND30OhGzQXEDaAL02YjCA1rUmTYEGuIIBb_aE_X6HJMQB356_BjDhoH861bh1t_jsW4MdqdHFnhaaCQBSiMrSkEks0qVIvrhAyAvyJV_qbKtdknfHUX6TaQ_-pbp7vZHM6uNA-NBkHJlE3T5AuqX6dCOBla_DB1oJ9X2_W9oF5ApH5uGBOy0NHsiSfnoBHxvXmKvYuVfnR1RM3Gt23xGsAdArGpBivuLG-vpzy7YlNYt_nrb8rw0FT0KG8YRPILjjn9TOWZI_bT37rGIAgiqRX0m0ayGL4Afj7ZW3nHmdlHGsx7x0AsYxoril3JIlXB5SFIkd0E7x_y7vTAbNoqHpqztjHkDPPEdWujnCgEhUasX5TMSSyQNsHONiw2rQmg93ZAV7WovNvQVo3b-4ppCjDFWRpjcpBsRZgG-WyJnpr3dtE_RIZarU7_2aDBnmWC46iVHfSQyw_u_tQPEImOTAKLVmHt_IqBoiCgTP5gPciycPqXu9gptlF8jHi9Zw-7pvW_DFWouo-9EM',
            responseAt: 2022-12-10T09:01:19.465Z,
            hasSolution: true,
            duration: 2.288
        }
    ],
    solved: [
        {
            _vendor: 'recaptcha',
            id: 'za5qgnk00ldj',
            responseElement: true,
            responseCallback: false,
            error: {},
            isSolved: true,
            solvedAt: {}
        }
    ],
    error: {
        _vendor: 'recaptcha',
        id: 'za5qgnk00ldj',
        responseElement: true,
        responseCallback: false,
        error: {},
        isSolved: true,
        solvedAt: {}
    }
}

Any reasons why entering the solution might fail?


来源: stackexchange

问:
React router dom 5.3.0 : Main content is not being rendered in new paths that is being returned by a Route file
I am following this tutorial to create an Ecommerce website,
React & Node Tutorial For Absolute Beginners - Build & Deploy ECommerce Website in 9 Hours

I am Stuck at Part 08- Build Product Screen

I have followed the tutorial to the t, but when my app goes to http://localhost:3000/products/1, it only shows the header and footer as they are outside the route. None of the  content and the product information page elements get rendered. I have been looking for 5 hours. It’s 5 am now and this is my last attempt at this, please help me out asap

Link to my github repo

I changed <Route path="/product/:id" component={ProductScreen} />to <Route path="/" component={ProductScreen} /> and commented out the Homescreen Route and it showed me the contents of the ProductScreen just fine

Here is a preview of my package.json

{
  "name": "frontend",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@testing-library/jest-dom": "^5.16.5",
    "@testing-library/react": "^13.4.0",
    "@testing-library/user-event": "^13.5.0",
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
    "react-router-dom": "^5.3.0",
    "react-scripts": "^5.0.1",
    "web-vitals": "^2.1.4"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": [
      "react-app",
      "react-app/jest"
    ]
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  }
}

```
<p>App.js</p>
```import React from "react";
import { BrowserRouter, Route } from "react-router-dom";
import Header from "./Components/Header";
import Footer from "./Components/Footer";
import HomeScreen from "./Screens/HomeScreen";
import ProductScreen from "./Screens/ProductScreen";

function App() {
  return (
    <BrowserRouter>

        {/* MODAL */}

        {/* NOTIFICATION TOAST */}

        {/* HEADER */}

        {/* MAIN */}

            <Route path="/product/:id" component={ProductScreen} />
            <Route path="/" exact={true} component={HomeScreen} />

        {/* FOOTER */}

    </BrowserRouter>
  );
}

export default App;

```
<p>And Product Screen</p>
```import React from "react";
import Rating from "../Components/Rating";
import data from "../data";

export default function ProductScreen(props) {
  const product = data.products.find((x) => x.id === props.match.params.id);
  if (!product) {
    return
 Product Not Found
;
  }
  return (

{product.category}

{product.name}

                Rs.{product.price}
                <Rating>
                  rating={product.rating}
                  numReviews={product.numReviews}
                </Rating>

              {/* Description:

{product.description}
 */}

              <button>Create Custom Size</button>
              <button>Customize</button>

  );
}

```

ContentLicense: CC BY-SA 4.0

Body:
I am following this tutorial to create an Ecommerce website,
React & Node Tutorial For Absolute Beginners - Build & Deploy ECommerce Website in 9 Hours

I am Stuck at Part 08- Build Product Screen

I have followed the tutorial to the t, but when my app goes to http://localhost:3000/products/1, it only shows the header and footer as they are outside the route. None of the  content and the product information page elements get rendered. I have been looking for 5 hours. It’s 5 am now and this is my last attempt at this, please help me out asap

Link to my github repo

I changed <Route path="/product/:id" component={ProductScreen} />to <Route path="/" component={ProductScreen} /> and commented out the Homescreen Route and it showed me the contents of the ProductScreen just fine

Here is a preview of my package.json

{
  "name": "frontend",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@testing-library/jest-dom": "^5.16.5",
    "@testing-library/react": "^13.4.0",
    "@testing-library/user-event": "^13.5.0",
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
    "react-router-dom": "^5.3.0",
    "react-scripts": "^5.0.1",
    "web-vitals": "^2.1.4"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": [
      "react-app",
      "react-app/jest"
    ]
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  }
}

App.js

import React from "react";
import { BrowserRouter, Route } from "react-router-dom";
import Header from "./Components/Header";
import Footer from "./Components/Footer";
import HomeScreen from "./Screens/HomeScreen";
import ProductScreen from "./Screens/ProductScreen";

function App() {
  return (
    <BrowserRouter>

        {/* MODAL */}

        {/* NOTIFICATION TOAST */}

        {/* HEADER */}

        {/* MAIN */}

            <Route path="/product/:id" component={ProductScreen} />
            <Route path="/" exact={true} component={HomeScreen} />

        {/* FOOTER */}

    </BrowserRouter>
  );
}

export default App;

And Product Screen

import React from "react";
import Rating from "../Components/Rating";
import data from "../data";

export default function ProductScreen(props) {
  const product = data.products.find((x) => x.id === props.match.params.id);
  if (!product) {
    return
 Product Not Found
;
  }
  return (

{product.category}

{product.name}

                Rs.{product.price}
                <Rating>
                  rating={product.rating}
                  numReviews={product.numReviews}
                </Rating>

              {/* Description:

{product.description}
 */}

              <button>Create Custom Size</button>
              <button>Customize</button>

  );
}


问:
Ways to send emails with python?
I am trying to write a python program that could send emails automatically (through ...@gmail.com). But I keep getting the following error message:

```<code>smtplib.SMTPAuthenticationError: (535, b'5.7.8 Username and Password not accepted.
</code>```

I did some research on this and now it appears that google no longer allows third party apps to login for security reasons.

This made me wonder if there were any other methods to get this in order?

Title: Ways to send emails with python?

Body:
I am trying to write a python program that could send emails automatically (through ...@gmail.com). But I keep getting the following error message:

smtplib.SMTPAuthenticationError: (535, b'5.7.8 Username and Password not accepted.

I did some research on this and now it appears that google no longer allows third party apps to login for security reasons.

This made me wonder if there were any other methods to get this in order?


问:
How to make the direction of the carousel vertical in ipywidgets?
```<code>from ipywidgets import Layout, Button, VBox, Label

item_layout = Layout(height='100px', min_width='40px')
items = [Button(layout=item_layout, description=str(i), button_style='warning') for i in range(40)]
box_layout = Layout(overflow='scroll hidden',
                    border='3px solid black',
                    width='500px',
                    height='',
                    flex_flow='row',
                    display='flex')
carousel = Box(children=items, layout=box_layout)
VBox([Label('Scroll horizontally:'), carousel])
</code>```

enter image description here

expected result:
enter image description here

I tried to change flex_flow from row to column
Here is the result:
enter image description here

Body:
from ipywidgets import Layout, Button, VBox, Label

item_layout = Layout(height='100px', min_width='40px')
items = [Button(layout=item_layout, description=str(i), button_style='warning') for i in range(40)]
box_layout = Layout(overflow='scroll hidden',
                    border='3px solid black',
                    width='500px',
                    height='',
                    flex_flow='row',
                    display='flex')
carousel = Box(children=items, layout=box_layout)
VBox([Label('Scroll horizontally:'), carousel])

enter image description here

expected result:
enter image description here

I tried to change flex_flow from row to column
Here is the result:
enter image description here


问:
Get Details of installed application on Windows using python
I want to get the following information of all installed software in a windows pc using python;

Name of Software

Version of Software

Publisher

Date of Installation

Date Modified (eg last updated)

I have tried some answers I saw on the net but they don't seem to provide all.


问:
Byte [] to int conversion impossible
And the problem I have, when converting Byte[] to String, I tried with the Encoding.UTF8.GetString and the ncoding.Ascii.GetString but nothing changes ???

I always end up with a string that has backslashes in this form

sRecv = "\\0\\0\\0u0001"
```
<p>I don't understand....</p>
<p>Sender code</p>
<pre class="lang-cs prettyprint-override"><code>public void SendDatas(int progress)
{
    byte[] intBytes = BitConverter.GetBytes(progress);
    if (BitConverter.IsLittleEndian)
        Array.Reverse(intBytes);
    byte[] result = intBytes;
    try
    {
        _socketClient.Send(result, SocketFlags.None);
    }
    catch
    {
        MessageBox.Show($"Erreur lors de la transmition des données", "Erreur", MessageBoxButton.OK, MessageBoxImage.Error);
    }
}
</code>```

receive code

public int EcouterReseau(Socket socketClient)
{

    string sRecv;
    try
    {
        byte[] data = new byte[1024];
        int recv = socketClient.Receive(data);
        sRecv = Encoding.Unicode.GetString(data, 0, recv);
    }
    catch
    {
        sRecv = "0";
    }
    int returnValue = int.Parse(sRecv.Remove(0, 7));
    return returnValue;
}
```

Title: Byte [] to int conversion impossible

Body:
And the problem I have, when converting Byte[] to String, I tried with the Encoding.UTF8.GetString and the ncoding.Ascii.GetString but nothing changes ???

I always end up with a string that has backslashes in this form

sRecv = "\\0\\0\\0u0001"

I don't understand....

Sender code

public void SendDatas(int progress)
{
    byte[] intBytes = BitConverter.GetBytes(progress);
    if (BitConverter.IsLittleEndian)
        Array.Reverse(intBytes);
    byte[] result = intBytes;
    try
    {
        _socketClient.Send(result, SocketFlags.None);
    }
    catch
    {
        MessageBox.Show($"Erreur lors de la transmition des données", "Erreur", MessageBoxButton.OK, MessageBoxImage.Error);
    }
}

receive code

public int EcouterReseau(Socket socketClient)
{

    string sRecv;
    try
    {
        byte[] data = new byte[1024];
        int recv = socketClient.Receive(data);
        sRecv = Encoding.Unicode.GetString(data, 0, recv);
    }
    catch
    {
        sRecv = "0";
    }
    int returnValue = int.Parse(sRecv.Remove(0, 7));
    return returnValue;
}


问:
how to Change google map deferent type after run| show popup | in flutter
Change google map type | show popup | in flutter

how to change google mape different type after run google in popupbox

please help me wihh code


问:
vlcj: libvlc_instance_t not accessible after module creation
I have recently migrated my project from Java8 to Java17. I wanted to try out the module system and added a module-info.java to my existing Eclipse project. As it caused several issues, I decided to revert back the change and to proceed without declaring modules. I deleted the file, but now I am getting compile errors. It is stated that LibX11 and libvlc_instance_t cannot be resolved to be a type and that they are not accessible. Why is that? It was working fine before. It seems that adding and removing the module-info.java has somehow messed up my configuration.

I need to access libvlc_instance_t because I need to subclass MediaPlayer, which requires a reference to libvlc_instance_t in the constructor. If libvlc_instance_t is really not meant to be used, how can I solve this? Thank you!


问:
Each child in a list should have unique key prop and my browser router is also undefined
How to clear this problem.
Error in browser router
http://localhost:3000/Questions/undefined and

Each child in a list should have unique key prop.

```<code>import React from 'react'
import Questions from './Questions'

const QuestionList = ({questionsList}) => {
 return (
<>
     {
      questionsList.map((question)=>(
        <Questions question={question} key={question.id}/>
      ))
     }
</>
 )
}
</code>```

I am trying to build the new component page,i am expected that new component page is created,but as the result is Each child in a list should have unique key prop and my browser router is also undefined.

Body:
How to clear this problem.
Error in browser router
http://localhost:3000/Questions/undefined and

Each child in a list should have unique key prop.

import React from 'react'
import Questions from './Questions'

const QuestionList = ({questionsList}) => {
 return (
<>
     {
      questionsList.map((question)=>(
        <Questions question={question} key={question.id}/>
      ))
     }
</>
 )
}

I am trying to build the new component page,i am expected that new component page is created,but as the result is Each child in a list should have unique key prop and my browser router is also undefined.


问:
aiosmtpd is not working on the linux version
aiosmtpd is that supported on linux versions(redhat or centos) ?, any plans ?
need support on linux versions
facing issue while using it on centos7 or 8 linux versions</p>


问:
Deleting arrays inside two-dimensional arrays
I have this program that is supposed to make operations on 2 arrays and one of them is a two-dimensional array.
the method (removeStudent) that I created to remove a student's name plus his marks is not working.

```<code>import java.util.Objects;
import java.util.Scanner;
import java.util.Arrays;
public class Project {
    public static Scanner scan = new Scanner(System.in);
    // The arrays are located outside the main method because the other methods are non=static methods
    String[] names= {"Nadim", "Sarah","Alfred","Nadim","Abed"};
    double[][] marks= {
            {0, 0, 0, 0, 0},
            {0, 0, 0, 0, 0},
            {90, 45, 67, 23, 36},
            {80, 88, 50, 50, 50},
            {81, 85, 88, 91, 90}
    };

    public static void main(String[] args) {
        Project Class = new Project();
        String operation;
        String name;

        // This method prints the available operation to the user to know what
        Class.availableOperations();

        // This main switch statement controls all the methods ,and it is looped until the user inputs "quit" into the program
        do{
            System.out.print("\nEnter the name of the operation to begin: ");

            // This scanner decides what method the user will be using
            operation = scan.nextLine();

            switch (operation) {
                case "add" -> {
                    System.out.print("Enter the name of the student: ");
                    name = scan.nextLine();
                    Class.addStudent(name);
                    Class.addMarks();
                }
                case "remove" -> {
                    System.out.print("Enter the name of the student: ");
                    name = scan.nextLine();
                    Class.removeStudent(name);
                }
                case "print gpa" -> {
                    System.out.print("Enter the name of the student: ");
                    name = scan.nextLine();
                    Class.findGpa(name);
                }
                case "print grades" -> {
                    System.out.print("Enter the name of the student: ");
                    name = scan.nextLine();
                    Class.printStudentGrades(name);
                }
                case "find student by gpa" -> {
                    System.out.print("Enter the the GPA of the student: ");
                    double gpa = scan.nextDouble();
                    Class.findStudentByGpa(gpa);
                }
                case "lowest gpa" -> Class.lowestGpa();
                case "highest gpa" -> Class.highestGpa();
                case "print average" -> Class.findAverage();
                case "print all students grades" -> Class.printAllStudentsGrades();
                case "quit" -> System.out.println("Operation Done.");
                default -> System.out.println("This is not a valid operation.");
            }
        }while (!Objects.equals(operation, "quit"));
    }

    public void availableOperations() {
        System.out.println("""
                    Available Operations:\s
                    (add) To add a new student\s
                    (remove) To remove a Student\s
                    (print gpa) To get a student GPA\s
                    (print grades) To print the grades of a student\s
                    (print average) To get the average GPA of the class\s
                    (lowest gpa) To get the student with lowest GPA\s
                    (highest gpa) To get the student with highest GPA\s
                    (find student by gpa) To get the students who got a certain GPA\s
                    (print all students grades) To get the grades of every student\s
                    (quit) To Exit
                    """);
    }
    public void addStudent(String nameAdd) {
        // This array will hold the values of the original array plus the new one that the user inputs
        String[] moreNames= new String[names.length + 1];

        // This loop copies the values of the original array to the new one
        for (int i=0; i <names.length; i++) {
            moreNames[i] = names[i];
        }

        // This line of code add the new value inputted by the user
        moreNames[moreNames.length -1] = nameAdd;

        // Assigning the new array to the original one so the last results will be saved
        names= moreNames;
    }
    public void addMarks() {
        // Create a new 2D array with one more row than the original array to hold the original values plus the new ones
        double[][] newMarks = new double[marks.length + 1][marks[0].length];

        // Copy the values from the original array to the new array
        for (int i = 0; i < marks.length; i++) {
            newMarks[i] = marks[i];
        }

        // Looping the scanner to input the grades of the newly added student
        for (int i = 0; i < marks[0].length; i++) {
            System.out.print("Enter mark " + (i + 1) + ": ");
            newMarks[newMarks.length - 1][i] = scan.nextDouble();
        }

        // Assigning the new array to the original one to save the last results
        marks = newMarks;
    }
    public void removeStudent(String nameToRemove) {
        int namesLength = 0;

        // This loop iterates through the array and saves how much names match the one the user wants to remove
        for (int i = 0; i < names.length; i++) {
            if (Objects.equals(nameToRemove, names[i])) {
                namesLength++;
            }
        }

        if (namesLength > 0) {

            // Creating a new array to hold the original values minus the ones the user wants to delete
            String[] newNames = new String[names.length - namesLength];

            int namesIndexLess = 0;

            // Copying the values from the original array to the new one except the ones the user wants to delete
            for (String name : names) {
                if (!Objects.equals(name, nameToRemove)) {
                    newNames[namesIndexLess] = name;
                    namesIndexLess++;
                }
            }

            // Assigning the new array to the original one to save the last results
            names = newNames;

            // Creating a new array to hold the original values minus the ones the user wants to delete
            double[][] newMarks = new double[marks.length - namesLength][marks[0].length];

            int count = 0;
            for (int i = 0; i < names.length; i++) {
                if (!Objects.equals(names[i], nameToRemove)) {
                    for (int y = 0; y < marks[i].length; y++) {
                        newMarks[count][y] = marks[i][y];
                    }
                    count++;
                }
            }

            //making the main marks array equal to the new one to save the last results
            marks = newMarks;

            for (int i=0; i < marks.length; i++) {
                for (int p=0; p < marks[i].length; p++) {
                    System.out.println(marks[i][p]);
                }
            }

        } else {
            System.out.println("Sorry no student with this name exists in our database");
        }
    }
    public void printStudentGrades(String studentName) {
        int StudentNumber =1;
        for (int i =0; i < names.length; i++) {
            if (Objects.equals(studentName, names[i])) {
                System.out.println("\n");
                for (int v =0; v <marks.length; v++) {
                    if (i == v) {
                        System.out.println("Student number " + StudentNumber++ + ":");
                        for (int p =0; p <marks[v].length; p++) {
                            System.out.print(marks[v][p] + "\n");
                        }
                    }
                }
            }
        }
    }
    public void printAllStudentsGrades() {
        for (int i = 0; i < names.length; i++) {
            System.out.println(names[i] + ": " + Arrays.toString(marks[i]));
        }
    }
    public void findStudentByGpa(double gpa) {
        int y = -1;
        int sum;

        //in the line below I made a new array to hold the values that the loop will create from teh old array
        double[] newMarks= new double[marks.length];

        //the loop will make new values to then put in a new array that hold 5 summations of the old secondary arrays
        for (int i= 0; i <marks.length; i++) {
            y++;
            sum = 0;
            for (int j =0; j<marks[i].length; j++) {
                sum += marks[i][j];
            }
            double initialGpa = sum/5;
            newMarks[y] = initialGpa;
        }

        for (int i =0; i < newMarks.length; i++) {
            if (gpa == newMarks[i]) {
                System.out.println(names[i]);
            }
        }
    }
    public void findGpa(String nameSum) {
        int numberOfStudents =0;
        double sum;
        //this loop is pretty simple, and I've used it many times, and it basically sums the marks of the chosen student to then get divided by the length of the array to give us the gpa
        for (int g= 0; g <names.length; g++) {
            sum =0;
            if (Objects.equals(nameSum, names[g])) {
                for (int j =0; j< marks[g].length; j++) {
                    sum += marks[g][j];
                }
                double avg = (sum/5);
                System.out.println("The average of student "+ ++numberOfStudents + " is "+ avg);
            }
        }
    }
    public void findAverage() {
        int y = -1;
        int sum;

        //in the line below I made a new array to hold the values that the loop will create from teh old array
        double[] newMarks= new double[marks.length];

        //the loop will make new values to then put in a new array that hold 5 summations of the old secondary arrays
        for (int i= 0; i <marks.length; i++) {
            y++;
            sum = 0;
            for (int j =0; j<marks[i].length; j++) {
                sum += marks[i][j];
            }
            double gpa = sum/5;
            newMarks[y] = gpa;
        }

        double sum2=0;
        for (int i =0; i< newMarks.length; i++) {
            sum2 += newMarks[i];
        }

        double avg = sum2/ newMarks.length;
        System.out.println("The Average GPA of the class is " + avg);
    }
    public void lowestGpa() {
        int y = -1;
        int sum;

        //in the line below I made a new array to hold the values that the loop will create from teh old array
        int[] newMarks= new int[marks.length];

        //the loop will make new values to then put in a new array that hold 5 summations of the old secondary arrays
        for (int i= 0; i <marks.length; i++) {
            y++;
            sum = 0;
            for (int j =0; j<marks[i].length; j++) {
                sum += marks[i][j];
            }
            newMarks[y] = sum;
        }

        int newSum =newMarks[0];
        int num=0;

        //in this loop I can find the lowest gpa of the students
        for (int z=0; z< newMarks.length; z++) {
            if (newMarks[z] < newSum) {
                newSum = newMarks[z];
                num = z;
            }
        }
        //The lowestStudent variable stores name of the student who got the gpa
        String lowestStudent = names[num];
        double newGpa =newSum/5;
        System.out.println("The lowest gpa is " + newGpa + " and the name of the student who got it is " + lowestStudent +"\n");
    }
    public void highestGpa() {
        int y = -1;
        int sum;

        //in the line below I made a new array to hold the values that the loop will create from teh old array
        int[] newMarks= new int[marks.length];

        //the loop will make new values to then ut in a new array that hold 5 summations of the old secondary arrays
        for (int i= 0; i <marks.length; i++) {
            y++;
            sum = 0;
            for (int j =0; j<marks[i].length; j++) {
                sum += marks[i][j];
            }
            newMarks[y] = sum;
        }
        String highestStudent = "";
        int oldGpa =newMarks[0];
        int z;
        //in this loop I can find the highest gpa of the students
        for (z=0; z< newMarks.length; z++) {
            if (newMarks[z] > oldGpa) {
                oldGpa = newMarks[z];
            }
            highestStudent= names[z];
        }
        double newGpa =oldGpa/5;
        System.out.println("The highest gpa is " + newGpa + " and the student who got it is " +highestStudent + "\n");
    }
}
</code>```

Can you tell me why removeStudent is removing the last 2 arrays inside it and show me how to fix it, please ?

My program was done but I remembered that there could be exceptions such as two people having the same name so i started rewriteing it so it does not throw errors incase there is two people with the same names.

Body:
I have this program that is supposed to make operations on 2 arrays and one of them is a two-dimensional array.
the method (removeStudent) that I created to remove a student's name plus his marks is not working.

import java.util.Objects;
import java.util.Scanner;
import java.util.Arrays;
public class Project {
    public static Scanner scan = new Scanner(System.in);
    // The arrays are located outside the main method because the other methods are non=static methods
    String[] names= {"Nadim", "Sarah","Alfred","Nadim","Abed"};
    double[][] marks= {
            {0, 0, 0, 0, 0},
            {0, 0, 0, 0, 0},
            {90, 45, 67, 23, 36},
            {80, 88, 50, 50, 50},
            {81, 85, 88, 91, 90}
    };

    public static void main(String[] args) {
        Project Class = new Project();
        String operation;
        String name;

        // This method prints the available operation to the user to know what
        Class.availableOperations();

        // This main switch statement controls all the methods ,and it is looped until the user inputs "quit" into the program
        do{
            System.out.print("\nEnter the name of the operation to begin: ");

            // This scanner decides what method the user will be using
            operation = scan.nextLine();

            switch (operation) {
                case "add" -> {
                    System.out.print("Enter the name of the student: ");
                    name = scan.nextLine();
                    Class.addStudent(name);
                    Class.addMarks();
                }
                case "remove" -> {
                    System.out.print("Enter the name of the student: ");
                    name = scan.nextLine();
                    Class.removeStudent(name);
                }
                case "print gpa" -> {
                    System.out.print("Enter the name of the student: ");
                    name = scan.nextLine();
                    Class.findGpa(name);
                }
                case "print grades" -> {
                    System.out.print("Enter the name of the student: ");
                    name = scan.nextLine();
                    Class.printStudentGrades(name);
                }
                case "find student by gpa" -> {
                    System.out.print("Enter the the GPA of the student: ");
                    double gpa = scan.nextDouble();
                    Class.findStudentByGpa(gpa);
                }
                case "lowest gpa" -> Class.lowestGpa();
                case "highest gpa" -> Class.highestGpa();
                case "print average" -> Class.findAverage();
                case "print all students grades" -> Class.printAllStudentsGrades();
                case "quit" -> System.out.println("Operation Done.");
                default -> System.out.println("This is not a valid operation.");
            }
        }while (!Objects.equals(operation, "quit"));
    }

    public void availableOperations() {
        System.out.println("""
                    Available Operations:\s
                    (add) To add a new student\s
                    (remove) To remove a Student\s
                    (print gpa) To get a student GPA\s
                    (print grades) To print the grades of a student\s
                    (print average) To get the average GPA of the class\s
                    (lowest gpa) To get the student with lowest GPA\s
                    (highest gpa) To get the student with highest GPA\s
                    (find student by gpa) To get the students who got a certain GPA\s
                    (print all students grades) To get the grades of every student\s
                    (quit) To Exit
                    """);
    }
    public void addStudent(String nameAdd) {
        // This array will hold the values of the original array plus the new one that the user inputs
        String[] moreNames= new String[names.length + 1];

        // This loop copies the values of the original array to the new one
        for (int i=0; i <names.length; i++) {
            moreNames[i] = names[i];
        }

        // This line of code add the new value inputted by the user
        moreNames[moreNames.length -1] = nameAdd;

        // Assigning the new array to the original one so the last results will be saved
        names= moreNames;
    }
    public void addMarks() {
        // Create a new 2D array with one more row than the original array to hold the original values plus the new ones
        double[][] newMarks = new double[marks.length + 1][marks[0].length];

        // Copy the values from the original array to the new array
        for (int i = 0; i < marks.length; i++) {
            newMarks[i] = marks[i];
        }

        // Looping the scanner to input the grades of the newly added student
        for (int i = 0; i < marks[0].length; i++) {
            System.out.print("Enter mark " + (i + 1) + ": ");
            newMarks[newMarks.length - 1][i] = scan.nextDouble();
        }

        // Assigning the new array to the original one to save the last results
        marks = newMarks;
    }
    public void removeStudent(String nameToRemove) {
        int namesLength = 0;

        // This loop iterates through the array and saves how much names match the one the user wants to remove
        for (int i = 0; i < names.length; i++) {
            if (Objects.equals(nameToRemove, names[i])) {
                namesLength++;
            }
        }

        if (namesLength > 0) {

            // Creating a new array to hold the original values minus the ones the user wants to delete
            String[] newNames = new String[names.length - namesLength];

            int namesIndexLess = 0;

            // Copying the values from the original array to the new one except the ones the user wants to delete
            for (String name : names) {
                if (!Objects.equals(name, nameToRemove)) {
                    newNames[namesIndexLess] = name;
                    namesIndexLess++;
                }
            }

            // Assigning the new array to the original one to save the last results
            names = newNames;

            // Creating a new array to hold the original values minus the ones the user wants to delete
            double[][] newMarks = new double[marks.length - namesLength][marks[0].length];

            int count = 0;
            for (int i = 0; i < names.length; i++) {
                if (!Objects.equals(names[i], nameToRemove)) {
                    for (int y = 0; y < marks[i].length; y++) {
                        newMarks[count][y] = marks[i][y];
                    }
                    count++;
                }
            }

            //making the main marks array equal to the new one to save the last results
            marks = newMarks;

            for (int i=0; i < marks.length; i++) {
                for (int p=0; p < marks[i].length; p++) {
                    System.out.println(marks[i][p]);
                }
            }

        } else {
            System.out.println("Sorry no student with this name exists in our database");
        }
    }
    public void printStudentGrades(String studentName) {
        int StudentNumber =1;
        for (int i =0; i < names.length; i++) {
            if (Objects.equals(studentName, names[i])) {
                System.out.println("\n");
                for (int v =0; v <marks.length; v++) {
                    if (i == v) {
                        System.out.println("Student number " + StudentNumber++ + ":");
                        for (int p =0; p <marks[v].length; p++) {
                            System.out.print(marks[v][p] + "\n");
                        }
                    }
                }
            }
        }
    }
    public void printAllStudentsGrades() {
        for (int i = 0; i < names.length; i++) {
            System.out.println(names[i] + ": " + Arrays.toString(marks[i]));
        }
    }
    public void findStudentByGpa(double gpa) {
        int y = -1;
        int sum;

        //in the line below I made a new array to hold the values that the loop will create from teh old array
        double[] newMarks= new double[marks.length];

        //the loop will make new values to then put in a new array that hold 5 summations of the old secondary arrays
        for (int i= 0; i <marks.length; i++) {
            y++;
            sum = 0;
            for (int j =0; j<marks[i].length; j++) {
                sum += marks[i][j];
            }
            double initialGpa = sum/5;
            newMarks[y] = initialGpa;
        }

        for (int i =0; i < newMarks.length; i++) {
            if (gpa == newMarks[i]) {
                System.out.println(names[i]);
            }
        }
    }
    public void findGpa(String nameSum) {
        int numberOfStudents =0;
        double sum;
        //this loop is pretty simple, and I've used it many times, and it basically sums the marks of the chosen student to then get divided by the length of the array to give us the gpa
        for (int g= 0; g <names.length; g++) {
            sum =0;
            if (Objects.equals(nameSum, names[g])) {
                for (int j =0; j< marks[g].length; j++) {
                    sum += marks[g][j];
                }
                double avg = (sum/5);
                System.out.println("The average of student "+ ++numberOfStudents + " is "+ avg);
            }
        }
    }
    public void findAverage() {
        int y = -1;
        int sum;

        //in the line below I made a new array to hold the values that the loop will create from teh old array
        double[] newMarks= new double[marks.length];

        //the loop will make new values to then put in a new array that hold 5 summations of the old secondary arrays
        for (int i= 0; i <marks.length; i++) {
            y++;
            sum = 0;
            for (int j =0; j<marks[i].length; j++) {
                sum += marks[i][j];
            }
            double gpa = sum/5;
            newMarks[y] = gpa;
        }

        double sum2=0;
        for (int i =0; i< newMarks.length; i++) {
            sum2 += newMarks[i];
        }

        double avg = sum2/ newMarks.length;
        System.out.println("The Average GPA of the class is " + avg);
    }
    public void lowestGpa() {
        int y = -1;
        int sum;

        //in the line below I made a new array to hold the values that the loop will create from teh old array
        int[] newMarks= new int[marks.length];

        //the loop will make new values to then put in a new array that hold 5 summations of the old secondary arrays
        for (int i= 0; i <marks.length; i++) {
            y++;
            sum = 0;
            for (int j =0; j<marks[i].length; j++) {
                sum += marks[i][j];
            }
            newMarks[y] = sum;
        }

        int newSum =newMarks[0];
        int num=0;

        //in this loop I can find the lowest gpa of the students
        for (int z=0; z< newMarks.length; z++) {
            if (newMarks[z] < newSum) {
                newSum = newMarks[z];
                num = z;
            }
        }
        //The lowestStudent variable stores name of the student who got the gpa
        String lowestStudent = names[num];
        double newGpa =newSum/5;
        System.out.println("The lowest gpa is " + newGpa + " and the name of the student who got it is " + lowestStudent +"\n");
    }
    public void highestGpa() {
        int y = -1;
        int sum;

        //in the line below I made a new array to hold the values that the loop will create from teh old array
        int[] newMarks= new int[marks.length];

        //the loop will make new values to then ut in a new array that hold 5 summations of the old secondary arrays
        for (int i= 0; i <marks.length; i++) {
            y++;
            sum = 0;
            for (int j =0; j<marks[i].length; j++) {
                sum += marks[i][j];
            }
            newMarks[y] = sum;
        }
        String highestStudent = "";
        int oldGpa =newMarks[0];
        int z;
        //in this loop I can find the highest gpa of the students
        for (z=0; z< newMarks.length; z++) {
            if (newMarks[z] > oldGpa) {
                oldGpa = newMarks[z];
            }
            highestStudent= names[z];
        }
        double newGpa =oldGpa/5;
        System.out.println("The highest gpa is " + newGpa + " and the student who got it is " +highestStudent + "\n");
    }
}

Can you tell me why removeStudent is removing the last 2 arrays inside it and show me how to fix it, please ?

My program was done but I remembered that there could be exceptions such as two people having the same name so i started rewriteing it so it does not throw errors incase there is two people with the same names.


问:
How to map dynamic routes to components outside pages folder in a NextJs multi tenant application
I am following this template here to create a Multi-tenant application using NextJS.

However, I am stucked at how to properly resolve the routing of the pages.

My pages folder is structured in this manner

```<code>pages/
   _sites/[site]
    [path.jsx]
    index.jsx
</code>```

I have the routing logic inside[path.jsx] file above

I have moved all my components from the pages folder to another folder called components.

Now, when a user visits for example james.mydomain.com/blog I wish to load the blog component from the components folder.

How can that be neatly done without too much hardcoding?

Here is what I have attempted but the page only freezes without loading the component:

```<code>import { useRouter } from "next/router";
import { useEffect, useState } from "react";
import Loading from "react-loading";

    export default function SiteComponent(props) {

        const router = useRouter();
        const [component, setComponent] = useState(null);
        const { path } = router.query;

        const loadComponent = async (path) => {
            const importedComponent = await import(`../../../src/components/${path}`);
            setComponent(importedComponent.default);
        }

        useEffect(() => {
            if (path) {
                loadComponent(path);
            }
        }, []);

        return (
            component ? <component /> : <Loading color="teal" type="bubble" />
        );

}
</code>```

Is there a way to do this neatly without the above dynamic component loading?

I feel the above code may not even work properly on the occasion I wish to load a nested route eg. james.mydomain.com/blog/categories.

Please kindly suggest a cleaner approach.

Body:
I am following this template here to create a Multi-tenant application using NextJS.

However, I am stucked at how to properly resolve the routing of the pages.

My pages folder is structured in this manner

pages/
   _sites/[site]
    [path.jsx]
    index.jsx

I have the routing logic inside[path.jsx] file above

I have moved all my components from the pages folder to another folder called components.

Now, when a user visits for example james.mydomain.com/blog I wish to load the blog component from the components folder.

How can that be neatly done without too much hardcoding?

Here is what I have attempted but the page only freezes without loading the component:

import { useRouter } from "next/router";
import { useEffect, useState } from "react";
import Loading from "react-loading";

    export default function SiteComponent(props) {

        const router = useRouter();
        const [component, setComponent] = useState(null);
        const { path } = router.query;

        const loadComponent = async (path) => {
            const importedComponent = await import(`../../../src/components/${path}`);
            setComponent(importedComponent.default);
        }

        useEffect(() => {
            if (path) {
                loadComponent(path);
            }
        }, []);

        return (
            component ? <component /> : <Loading color="teal" type="bubble" />
        );

}

Is there a way to do this neatly without the above dynamic component loading?

I feel the above code may not even work properly on the occasion I wish to load a nested route eg. james.mydomain.com/blog/categories.

Please kindly suggest a cleaner approach.


问:
How to change url param to object without changing value type?
I am trying to change a url param to object?

```<code>const url = key=hhdfghh&num=123
const params = Object.fromEntries(new URLSearchParams(url));
console.log(params);
params.num = '123'
</code>```

But i want it to be 123 type int

Body:
I am trying to change a url param to object?

const url = key=hhdfghh&num=123
const params = Object.fromEntries(new URLSearchParams(url));
console.log(params);
params.num = '123'

But i want it to be 123 type int


问:
How to upload a file, if you have the file url, to S3 using an S3 presigned url?
I have a url of an external image. I want to upload that image file to S3.

My react code looks something like this:

```<code>fetch(imageUrl)
  .then(async (res) => {
    const { data } = await axios.post('api/create-upload-url', {
      key: filename,
      bucket: bucketName,
      contentType: 'image/jpg',
    })

    await axios.put(data.url, res.body, {
      headers: {
        'Access-Control-Allow-Origin': '*',
      },
    })
  })
</code>```

It is uploading an empty object to the bucket:

```<code>{}
</code>```

Body:
I have a url of an external image. I want to upload that image file to S3.

My react code looks something like this:

fetch(imageUrl)
  .then(async (res) => {
    const { data } = await axios.post('api/create-upload-url', {
      key: filename,
      bucket: bucketName,
      contentType: 'image/jpg',
    })

    await axios.put(data.url, res.body, {
      headers: {
        'Access-Control-Allow-Origin': '*',
      },
    })
  })

It is uploading an empty object to the bucket:

{}


问:
Automate login of an application and Data
I have an application which asks for login data whenever I start it.
The login data is not very sensitive so i want to auotmate it. I am trying a python script which opens the app and then inputs the data into the username and password fields and clicks login. I am able to run the app using system.os but then the control moves to the application and the script does not proceed until the opened application is closed.

```<code>WindowsProcess = wmi.WMI()
flag = 0

for process in WindowsProcess.Win32_Process():
    if "process.exe" == process.Name:
        print("Application is Running")
        flag = 1
        break

if flag == 0:
    run("process.exe")

</code>```

// I want to enter the data at this point but the script does not proceed any further till the application is closed.

Also I would like some help in entering data. Is there something similar to getElementById from Javascript in Python.

I want to make a dashboard which will scrape data from the application.

If i should try some other language all together please advice as to which one I should use

Body:
I have an application which asks for login data whenever I start it.
The login data is not very sensitive so i want to auotmate it. I am trying a python script which opens the app and then inputs the data into the username and password fields and clicks login. I am able to run the app using system.os but then the control moves to the application and the script does not proceed until the opened application is closed.

WindowsProcess = wmi.WMI()
flag = 0

for process in WindowsProcess.Win32_Process():
    if "process.exe" == process.Name:
        print("Application is Running")
        flag = 1
        break

if flag == 0:
    run("process.exe")

// I want to enter the data at this point but the script does not proceed any further till the application is closed.

Also I would like some help in entering data. Is there something similar to getElementById from Javascript in Python.

I want to make a dashboard which will scrape data from the application.

If i should try some other language all together please advice as to which one I should use


问:
When i try to install pygame using pip it gives me an error and says the problem isnt with pip
Error:

```<code>Collecting pygame
  Using cached pygame-2.1.2.tar.gz (10.1 MB)
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [77 lines of output]

      WARNING, No "Setup" File Exists, Running "buildconfig/config.py"
      Using WINDOWS configuration...

      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "C:\Users\fun64\AppData\Local\Temp\pip-install-70lspblc\pygame_6645675c044f46cda093da402f331cb2\setup.py", line 359, in <module>
          buildconfig.config.main(AUTO_CONFIG)
        File "C:\Users\fun64\AppData\Local\Temp\pip-install-70lspblc\pygame_6645675c044f46cda093da402f331cb2\buildconfig\config.py", line 225, in main
          deps = CFG.main(**kwds)
                 ^^^^^^^^^^^^^^^^
        File "C:\Users\fun64\AppData\Local\Temp\pip-install-70lspblc\pygame_6645675c044f46cda093da402f331cb2\buildconfig\config_win.py", line 511, in main
          return setup_prebuilt_sdl2(prebuilt_dir)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "C:\Users\fun64\AppData\Local\Temp\pip-install-70lspblc\pygame_6645675c044f46cda093da402f331cb2\buildconfig\config_win.py", line 471, in setup_prebuilt_sdl2
          DEPS.configure()
        File "C:\Users\fun64\AppData\Local\Temp\pip-install-70lspblc\pygame_6645675c044f46cda093da402f331cb2\buildconfig\config_win.py", line 336, in configure
          from . import vstools
        File "C:\Users\fun64\AppData\Local\Temp\pip-install-70lspblc\pygame_6645675c044f46cda093da402f331cb2\buildconfig\vstools.py", line 11, in <module>
          compiler.initialize()
        File "C:\Users\fun64\AppData\Local\Programs\Python\Python311\Lib\site-packages\setuptools\_distutils\msvc9compiler.py", line 403, in initialize
          vc_env = query_vcvarsall(VERSION, plat_spec)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "C:\Users\fun64\AppData\Local\Programs\Python\Python311\Lib\site-packages\setuptools\_distutils\msvc9compiler.py", line 281, in query_vcvarsall
          raise DistutilsPlatformError("Unable to find vcvarsall.bat")
      distutils.errors.DistutilsPlatformError: Unable to find vcvarsall.bat
      Making dir :prebuilt_downloads:
      Downloading... https://www.libsdl.org/release/SDL2-devel-2.0.18-VC.zip ed561079ec622b0bab5a9e02976f5d540b0622da
      Unzipping :prebuilt_downloads\SDL2-devel-2.0.18-VC.zip:
      Downloading... https://www.libsdl.org/projects/SDL_image/release/SDL2_image-devel-2.0.5-VC.zip 137f86474691f4e12e76e07d58d5920c8d844d5b
      Unzipping :prebuilt_downloads\SDL2_image-devel-2.0.5-VC.zip:
      Downloading... https://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-devel-2.0.15-VC.zip 1436df41ebc47ac36e02ec9bda5699e80ff9bd27
      Unzipping :prebuilt_downloads\SDL2_ttf-devel-2.0.15-VC.zip:
      Downloading... https://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-devel-2.0.4-VC.zip 9097148f4529cf19f805ccd007618dec280f0ecc
      Unzipping :prebuilt_downloads\SDL2_mixer-devel-2.0.4-VC.zip:
      Downloading... https://www.pygame.org/ftp/jpegsr9d.zip ed10aa2b5a0fcfe74f8a6f7611aeb346b06a1f99
      Unzipping :prebuilt_downloads\jpegsr9d.zip:
      Downloading... https://pygame.org/ftp/prebuilt-x64-pygame-1.9.2-20150922.zip 3a5af3427b3aa13a0aaf5c4cb08daaed341613ed
      Unzipping :prebuilt_downloads\prebuilt-x64-pygame-1.9.2-20150922.zip:
      copying into .\prebuilt-x64
      Path for SDL: prebuilt-x64\SDL2-2.0.18
      ...Library directory for SDL: prebuilt-x64/SDL2-2.0.18/lib/x64
      ...Include directory for SDL: prebuilt-x64/SDL2-2.0.18/include
      Path for FONT: prebuilt-x64\SDL2_ttf-2.0.15
      ...Library directory for FONT: prebuilt-x64/SDL2_ttf-2.0.15/lib/x64
      ...Include directory for FONT: prebuilt-x64/SDL2_ttf-2.0.15/include
      Path for IMAGE: prebuilt-x64\SDL2_image-2.0.5
      ...Library directory for IMAGE: prebuilt-x64/SDL2_image-2.0.5/lib/x64
      ...Include directory for IMAGE: prebuilt-x64/SDL2_image-2.0.5/include
      Path for MIXER: prebuilt-x64\SDL2_mixer-2.0.4
      ...Library directory for MIXER: prebuilt-x64/SDL2_mixer-2.0.4/lib/x64
      ...Include directory for MIXER: prebuilt-x64/SDL2_mixer-2.0.4/include
      Path for PORTMIDI: prebuilt-x64
      ...Library directory for PORTMIDI: prebuilt-x64/lib
      ...Include directory for PORTMIDI: prebuilt-x64/include
      DLL for SDL2: prebuilt-x64/SDL2-2.0.18/lib/x64/SDL2.dll
      DLL for SDL2_ttf: prebuilt-x64/SDL2_ttf-2.0.15/lib/x64/SDL2_ttf.dll
      DLL for SDL2_image: prebuilt-x64/SDL2_image-2.0.5/lib/x64/SDL2_image.dll
      DLL for SDL2_mixer: prebuilt-x64/SDL2_mixer-2.0.4/lib/x64/SDL2_mixer.dll
      DLL for portmidi: prebuilt-x64/lib/portmidi.dll
      Path for FREETYPE not found.
      ...Found include dir but no library dir in prebuilt-x64.
      Path for PNG not found.
      ...Found include dir but no library dir in prebuilt-x64.
      Path for JPEG not found.
      ...Found include dir but no library dir in prebuilt-x64.
      DLL for freetype: prebuilt-x64/SDL2_ttf-2.0.15/lib/x64/libfreetype-6.dll

      ---
      For help with compilation see:
          https://www.pygame.org/wiki/CompileWindows
      To contribute to pygame development see:
          https://www.pygame.org/contribute.html
      ---

      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details
</code>```

Idk what to do if it was a problem with pip i would reinstall but idk wha t to do here
i cant just reinstall pip since that would do nothing is pygame down? or what                                                   .........................................................................................................................................................................................

thanks in advance Oh and i also tried downloading microsoft visual c++ build tools but it didnt work it still gives the error

Body:
Error:

Collecting pygame
  Using cached pygame-2.1.2.tar.gz (10.1 MB)
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [77 lines of output]

      WARNING, No "Setup" File Exists, Running "buildconfig/config.py"
      Using WINDOWS configuration...

      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "C:\Users\fun64\AppData\Local\Temp\pip-install-70lspblc\pygame_6645675c044f46cda093da402f331cb2\setup.py", line 359, in <module>
          buildconfig.config.main(AUTO_CONFIG)
        File "C:\Users\fun64\AppData\Local\Temp\pip-install-70lspblc\pygame_6645675c044f46cda093da402f331cb2\buildconfig\config.py", line 225, in main
          deps = CFG.main(**kwds)
                 ^^^^^^^^^^^^^^^^
        File "C:\Users\fun64\AppData\Local\Temp\pip-install-70lspblc\pygame_6645675c044f46cda093da402f331cb2\buildconfig\config_win.py", line 511, in main
          return setup_prebuilt_sdl2(prebuilt_dir)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "C:\Users\fun64\AppData\Local\Temp\pip-install-70lspblc\pygame_6645675c044f46cda093da402f331cb2\buildconfig\config_win.py", line 471, in setup_prebuilt_sdl2
          DEPS.configure()
        File "C:\Users\fun64\AppData\Local\Temp\pip-install-70lspblc\pygame_6645675c044f46cda093da402f331cb2\buildconfig\config_win.py", line 336, in configure
          from . import vstools
        File "C:\Users\fun64\AppData\Local\Temp\pip-install-70lspblc\pygame_6645675c044f46cda093da402f331cb2\buildconfig\vstools.py", line 11, in <module>
          compiler.initialize()
        File "C:\Users\fun64\AppData\Local\Programs\Python\Python311\Lib\site-packages\setuptools\_distutils\msvc9compiler.py", line 403, in initialize
          vc_env = query_vcvarsall(VERSION, plat_spec)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "C:\Users\fun64\AppData\Local\Programs\Python\Python311\Lib\site-packages\setuptools\_distutils\msvc9compiler.py", line 281, in query_vcvarsall
          raise DistutilsPlatformError("Unable to find vcvarsall.bat")
      distutils.errors.DistutilsPlatformError: Unable to find vcvarsall.bat
      Making dir :prebuilt_downloads:
      Downloading... https://www.libsdl.org/release/SDL2-devel-2.0.18-VC.zip ed561079ec622b0bab5a9e02976f5d540b0622da
      Unzipping :prebuilt_downloads\SDL2-devel-2.0.18-VC.zip:
      Downloading... https://www.libsdl.org/projects/SDL_image/release/SDL2_image-devel-2.0.5-VC.zip 137f86474691f4e12e76e07d58d5920c8d844d5b
      Unzipping :prebuilt_downloads\SDL2_image-devel-2.0.5-VC.zip:
      Downloading... https://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-devel-2.0.15-VC.zip 1436df41ebc47ac36e02ec9bda5699e80ff9bd27
      Unzipping :prebuilt_downloads\SDL2_ttf-devel-2.0.15-VC.zip:
      Downloading... https://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-devel-2.0.4-VC.zip 9097148f4529cf19f805ccd007618dec280f0ecc
      Unzipping :prebuilt_downloads\SDL2_mixer-devel-2.0.4-VC.zip:
      Downloading... https://www.pygame.org/ftp/jpegsr9d.zip ed10aa2b5a0fcfe74f8a6f7611aeb346b06a1f99
      Unzipping :prebuilt_downloads\jpegsr9d.zip:
      Downloading... https://pygame.org/ftp/prebuilt-x64-pygame-1.9.2-20150922.zip 3a5af3427b3aa13a0aaf5c4cb08daaed341613ed
      Unzipping :prebuilt_downloads\prebuilt-x64-pygame-1.9.2-20150922.zip:
      copying into .\prebuilt-x64
      Path for SDL: prebuilt-x64\SDL2-2.0.18
      ...Library directory for SDL: prebuilt-x64/SDL2-2.0.18/lib/x64
      ...Include directory for SDL: prebuilt-x64/SDL2-2.0.18/include
      Path for FONT: prebuilt-x64\SDL2_ttf-2.0.15
      ...Library directory for FONT: prebuilt-x64/SDL2_ttf-2.0.15/lib/x64
      ...Include directory for FONT: prebuilt-x64/SDL2_ttf-2.0.15/include
      Path for IMAGE: prebuilt-x64\SDL2_image-2.0.5
      ...Library directory for IMAGE: prebuilt-x64/SDL2_image-2.0.5/lib/x64
      ...Include directory for IMAGE: prebuilt-x64/SDL2_image-2.0.5/include
      Path for MIXER: prebuilt-x64\SDL2_mixer-2.0.4
      ...Library directory for MIXER: prebuilt-x64/SDL2_mixer-2.0.4/lib/x64
      ...Include directory for MIXER: prebuilt-x64/SDL2_mixer-2.0.4/include
      Path for PORTMIDI: prebuilt-x64
      ...Library directory for PORTMIDI: prebuilt-x64/lib
      ...Include directory for PORTMIDI: prebuilt-x64/include
      DLL for SDL2: prebuilt-x64/SDL2-2.0.18/lib/x64/SDL2.dll
      DLL for SDL2_ttf: prebuilt-x64/SDL2_ttf-2.0.15/lib/x64/SDL2_ttf.dll
      DLL for SDL2_image: prebuilt-x64/SDL2_image-2.0.5/lib/x64/SDL2_image.dll
      DLL for SDL2_mixer: prebuilt-x64/SDL2_mixer-2.0.4/lib/x64/SDL2_mixer.dll
      DLL for portmidi: prebuilt-x64/lib/portmidi.dll
      Path for FREETYPE not found.
      ...Found include dir but no library dir in prebuilt-x64.
      Path for PNG not found.
      ...Found include dir but no library dir in prebuilt-x64.
      Path for JPEG not found.
      ...Found include dir but no library dir in prebuilt-x64.
      DLL for freetype: prebuilt-x64/SDL2_ttf-2.0.15/lib/x64/libfreetype-6.dll

      ---
      For help with compilation see:
          https://www.pygame.org/wiki/CompileWindows
      To contribute to pygame development see:
          https://www.pygame.org/contribute.html
      ---

      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details

Idk what to do if it was a problem with pip i would reinstall but idk wha t to do here
i cant just reinstall pip since that would do nothing is pygame down? or what                                                   .........................................................................................................................................................................................

thanks in advance Oh and i also tried downloading microsoft visual c++ build tools but it didnt work it still gives the error