參考資訊:
https://selenium-python.readthedocs.io/getting-started.html
main.py
from selenium import webdriver import time import json driver = webdriver.Chrome() driver.get("file:///tmp/main.html") driver.execute_script(""" (function() { const originalFetch = window.fetch; window.fetch = function() { let args = arguments; window._fetchLog = window._fetchLog || []; window._fetchLog.push({ type: 'request', url: args[0], options: args[1] ? JSON.stringify(args[1]) : null }); let r = originalFetch.apply(this, args).then(response => { response.clone().text().then(text => { window._fetchLog.push({ type: 'response', url: args[0], body: text }); }); return response; }); return arguments; }; })(); """) time.sleep(60) logs = driver.execute_script("return window._fetchLog || []") print(json.dumps(logs, indent=2)) driver.quit()
/tmp/main.html
<!doctype html> <html lang="en"> <body> <div class="wrap"> <button id="btn" type="button">Test</button> </div> <script> document.getElementById('btn').addEventListener('click', () => { fetch('www.google.com'); }); </script> </body> </html>
執行:
$ python3 main.py [ { "options": null, "type": "request", "url": "www.google.com" } ]