python中如何调用js文件中的方法呢 5

一般的js文件在python中很好调用,但是当js中存在闭环的时候,python中为什么怎么调用都不行呢,哪位大牛帮帮我,万分感激。js代码如下:(function($w... 一般的js文件在python中很好调用,但是当js中存在闭环的时候,python中为什么怎么调用都不行呢,哪位大牛帮帮我,万分感激。
js代码如下:
(function($w) {
if(typeof $w.RSAUtils === 'undefined')
var RSAUtils =$w.RSAUtils ={};

RSAUtils.add_e = function(a, b)
{
return a+b;
};
})(window);

python中调用该js中方法的代码如下:
import execjs
def test_add(a, b):
f = open("test.js").read().decode('utf-8')
ctx =execjs.compile(f)
print ctx.call('RSAUtils.add_e', a, b)
test_add(1, 3)

运行python脚本后,一直提示错误,错误信息如下:
Traceback (most recent call last):
File "C:/Users/w00396235/PycharmProjects/untitled/test.py", line 49, in <module>
test_add(1, 3)
File "C:/Users/w00396235/PycharmProjects/untitled/test.py", line 40, in test_add
print ctx.call('add_e', a, b)
File "C:\Python27\lib\site-packages\execjs\_abstract_runtime_context.py", line 37, in call
return self._call(name, *args)
File "C:\Python27\lib\site-packages\execjs\_external_runtime.py", line 87, in _call
return self._eval("{identifier}.apply(this, {args})".format(identifier=identifier, args=args))
File "C:\Python27\lib\site-packages\execjs\_external_runtime.py", line 73, in _eval
return self.exec_(code)
File "C:\Python27\lib\site-packages\execjs\_abstract_runtime_context.py", line 18, in exec_
return self._exec_(source)
File "C:\Python27\lib\site-packages\execjs\_external_runtime.py", line 83, in _exec_
return self._extract_result(output)
File "C:\Python27\lib\site-packages\execjs\_external_runtime.py", line 165, in _extract_result
raise exceptions.ProgramError(value)
execjs._exceptions.ProgramError
展开
 我来答
刺友互
高粉答主

2020-04-03 · 每个回答都超有意思的
知道答主
回答量:3979
采纳率:100%
帮助的人:71.9万
展开全部

1、打开pycharm开发工具,点击File菜单,选择Settings...,进行第三方模块安装;输入selenium,点击Install Package。

2、接着在python项目的指定文件夹下,鼠标右键新建python文件,输入文件名并点击Python file。

3、打开新建的文件,依次导入selenium、webdriver和time。

4、调用webdriver模块中的Chrome(),使用get()获取对应网址的内容。

5、调用find_element_by_id()获取对应页面元素,然后调用按钮点击事件。

6、修改get()方法中的请求路径,然后保存代码并运行文件,查看运行结果。

从空去听8
2017-07-21 · TA获得超过7439个赞
知道大有可为答主
回答量:6907
采纳率:93%
帮助的人:5572万
展开全部

先上代码:

import execjs  
#执行本地的js  
  
def get_js():  
    # f = open("D:/WorkSpace/MyWorkSpace/jsdemo/js/des_rsa.js",'r',encoding='UTF-8')  
    f = open("./js/des_rsa.js", 'r', encoding='UTF-8')  
    line = f.readline()  
    htmlstr = ''  
    while line:  
        htmlstr = htmlstr + line  
        line = f.readline()  
    return htmlstr  
  
jsstr = get_js()  
ctx = execjs.compile(jsstr)  
print(ctx.call('enString','123456'))


1,首先通过,get_js方法,读取本地的 des_rsa.js 文件。
2,调用 execjs.compile() 编译并加载 js 文件内容。
3,使用call()调用js中的方法,具体方法如下:

function enString(data){  
var key1 = "YHXWWLKJYXGS";  
var key2 = "ZFCHHYXFL10C";  
var key3 = "DES";  
 var enchex = strEnc(data,key1,key2,key3);  
 return enchex;  
}

其中第一个参数“enString”为方法名,第二个参数开始,为js方法所需的参数


本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式