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 展开
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 展开
2个回答
展开全部
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()方法中的请求路径,然后保存代码并运行文件,查看运行结果。
展开全部
先上代码:
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方法所需的参数
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询