首页 > 解决方案 > 从电子应用远程调试中获取 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 变量

标签: pythonseleniumelectron

解决方案


推荐阅读