Javascript 如何从Node.js调用Python函数而不启动新会话(Selenium)?
现在发生的事情是,我已经有了一个运行selenium的python脚本。但是我需要做的是调用一个python函数,该函数的参数从node.js到已经运行的python脚本,而不运行python脚本的新实例 例如,我有一个名为Javascript 如何从Node.js调用Python函数而不启动新会话(Selenium)?,javascript,python,node.js,selenium,Javascript,Python,Node.js,Selenium,现在发生的事情是,我已经有了一个运行selenium的python脚本。但是我需要做的是调用一个python函数,该函数的参数从node.js到已经运行的python脚本,而不运行python脚本的新实例 例如,我有一个名为HelloWorld.py 导入系统 def HelloPal(pal): 打印(“从Python输出”) 打印(“你好”+pal) 如何调用已打开的HelloWorld.py实例的HelloPal(“World!”) 我的想法是: 指 我可以发送一个布尔值callFunc
HelloWorld.py
导入系统
def HelloPal(pal):
打印(“从Python输出”)
打印(“你好”+pal)
如何调用已打开的HelloWorld.py
实例的HelloPal(“World!”)
我的想法是:
指
我可以发送一个布尔值callFunc=true代码>使用node.js
。
在HelloWorld.py
中:
import sys
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.google.com")
callFunc = False
try:
callFunc = sys.argv[2]
except:
print("Localhost URL is not called yet!")
while callFunc is True:
HelloPal(sys.argv[1]);
def HelloPal(pal):
callFunc = False
print("Output from Python")
print("Hello " + pal)
在node.js脚本中:
var express = require('express');
var app = express();
app.listen(3000, function() {
console.log('server running on port 3000');
} )
app.get('/name', callName);
function callName(req, res) {
var spawn = require("child_process").spawn;
// E.g : http://localhost:3000/name?firstname=Mike
var process = spawn('python',["./HelloWorld.py",
req.query.firstname,
true] );
process.stdout.on('data', function(data) {
res.send(data.toString());
} )
}
但是经过测试,我发现node.js正在打开一个新的HelloWorld.py
实例
我怎样才能调用HelloPal(“世界!”)
到已经打开的HelloWorld.py
?我想知道你是否知道node也有selenium,以及更好的(IMHO)木偶,看起来很棒。只是我学习python比学习node更多。但似乎有一些软件包允许我在本地托管并向已经存在的python会话发送和接收数据。不是吗@pguardiario您对帮助完整的python包有什么想法吗?我想有一个类似于节点中的express的flask。如果我是你,我就不会那样做。