如何使用Python+Selenium从execute_script获取JS控制台响应代码?

h22fl7wq  于 2022-12-13  发布在  Python
关注(0)|答案(1)|浏览(198)

我正在Chrome开发控制台中使用selenium execute_script()函数发送一个JS获取请求。请求按预期工作,但我想创建一个函数来验证响应是否为403状态码。是否有内置的Selenium函数/库可以用来将状态码/响应提取到一个对象或值中,以便我可以对其进行Assert?
这是我当前发送请求的代码:

send_request = """
fetch(url, {
  method: 'POST',
  body: '',
  headers: headers,
})
  .then(res => {
    console.log(res.status)
    return res.json()
  })
  .then(
    (result) => {
      console.log(result)
    },
    (error) => {
      console.error(error)
    }
)"""
context.browser.execute_script(send_request)
n53p2ov0

n53p2ov01#

您需要execute_async_script,因为提取是异步的:

status = context.browser.execute_async_script("""
  let [resolve] = arguments
  fetch(url).then(r => resolve(r.status))
""")

相关问题