python execjs
作者:互联网
用python 中的execjs来运行js代码,发现报错,说
ReferenceError: window is not defined
可以用node里的jsdom,这个库可以生成对应环境
https://www.npmjs.com/package/jsdom
全局安装命令
npm i jsdom -g
之后在对应js代码里最前面加上以下代码就能正常运行
const jsdom = require(“jsdom”);
const { JSDOM } = jsdom;
const dom = new JSDOM(<!DOCTYPE html><p>Hello world</p>
);
window = dom.window;
document = window.document;
XMLHttpRequest = window.XMLHttpRequest;
1.在python执行文件所在的运行目录下,使用npm安装jsdom
使用cwd参数,指定模块的所在目录,比如,我们在全局安装的jsdom,在cmd里通过npm root -g 可以查看全局模块安装路径: D:\Users\X\X\X\npm\node_modules
我们使用时,代码可以按下面的写法写
import execjs
with open(r’要运行的.js’,‘r’,encoding=‘utf-8’) as f:
js = f.read()
ct = execjs.compile(js,cwd=r’C:\Users\w001\AppData\Roaming\npm\node_modules’)
print(ct.call(‘Rohr_Opt.reload’,‘1’))
标签:npm,const,python,js,window,jsdom,execjs 来源: https://blog.csdn.net/weixin_42856601/article/details/100837056