python - 从电子应用远程调试中获取 JS 变量
问题描述
我正在尝试通过远程调试从电子应用程序中抓取一个 JS 变量,
远程调试允许您通过浏览器访问应用程序,我可以在控制台中运行以下命令以获取 TOTP 密钥为十六进制,
appManager.getModel().forEach(model => console.log(`${model.name}: ${model.secretSeed}`));
我曾尝试使用 selenium 来执行此操作,但在 selenium 文档中找不到在开发人员控制台中运行命令的方法,
我正在使用 Python,但我对 Node.JS 持开放态度
这是我到目前为止所拥有的,但它给了我错误selenium.common.exceptions.JavascriptException: Message: javascript error: appManager is not defined
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
browser = webdriver.Edge()
browser.get("http://localhost:5858/")
browser.implicitly_wait(10)
app = browser.find_element(By.XPATH, '//*[@id="items"]/p/a')
app.click()
print(browser.execute_script("appManager.getModel().forEach(model => console.log(`${model.name}: ${model.secretSeed}`));"))
我只需要一种制作 selenium 或 puppeteer 的方法,通过远程调试检索 JS 变量
解决方案
推荐阅读
- wordpress - JQuery Mobile 为每个页面添加 WordPress 页面内容
- python - 覆盖属性
- c++ - C++ 是否用函数调用替换内置运算符?
- r - Azure Functions 中的 RDotNet (R.NET) 问题
- php - PHP-比较foreach循环中的相似度得分
- github - Google Cloud Functions:Github 发布的项目布局
- javascript - 如何在 Google 表格中合并行
- ios - 为什么在重新启动应用程序或执行两次 NSBatchDeleteRequest 之前不会删除条目?
- javascript - 我可以使用节点/套接字广播particle.js 背景和交互吗?
- sql - SQL Server:多个 WHERE NOT EXISTS 子句