名称错误: 名称'fetch'未在Selenium控制台中定义



嗨,我正在尝试打开Selenium,访问URL然后使用驱动程序。execute_script通过Chrome Developer Tools中的Console在Selenium窗口中发送获取请求。

然而,当我运行它时,Selenium窗口打开,访问页面,但是当它到达execute_script部分时,它出现了:

'NameError: name 'fetch'未定义'。我该如何解决这个问题?由于

driver.get(URL1)
driver.get('URL')
payload = fetch("URL", {
"headers": {
"accept": "application/json, text/javascript, */*; q=0.01",
"accept-language": "en-GB,en-US;q=0.9,en;q=0.8",
"content-type": "application/x-www-form-urlencoded; charset=UTF-8",
"sec-ch-device-memory": "8",
"sec-ch-ua": ""Google Chrome";v="107", "Chromium";v="107", "Not=A?Brand";v="24"",
"sec-ch-ua-arch": ""x86"",
"sec-ch-ua-full-version-list": ""Google Chrome";v="107.0.5304.88", "Chromium";v="107.0.5304.88", "Not=A?Brand";v="24.0.0.0"",
"sec-ch-ua-mobile": "?0",
"sec-ch-ua-model": "",
"sec-ch-ua-platform": ""Windows"",
"sec-fetch-dest": "empty",
"sec-fetch-mode": "cors",
"sec-fetch-site": "same-origin",
"x-esro-af": "s9TeAPYWl4s=",
"x-requested-with": "XMLHttpRequest"
},
"referrer": "URL",
"referrerPolicy": "strict-origin-when-cross-origin",
"body": URL CONTENT",
"method": "POST",
"mode": "cors",
"credentials": "include"
});
driver.execute_script(f'{payload}')

我试着把"要包装整个有效负载,但它不起作用。

取回不是这样的。首先它在浏览器中运行,其次它是异步的,所以使用execute_async_script。

应该是这样的:

response = driver.execute_async_script("""
let [resolve] = arguments
fetch(url, options).then(r => r.text()).then(resolve)
""")

最新更新