![](/img/trans.png)
[英]How can I execute functions in a node.js file hosted by Heroku from a file hosted in a different environment?
[英]How can I execute selenium node js script from other js file
我按照以下方式創建了文件:
Demo.js
var webdriver = require('selenium-webdriver');
var driver = new webdriver
.Builder()
.withCapabilities(webdriver.Capabilities.chrome())
.build();
driver.get('http://www.google.com');
driver.findElement(webdriver.By.name('q')).sendKeys('simple programmer');
driver.findElement(webdriver.By.name('btnK')).click();
driver.quit();
Run.js
var express = require('express');
var app = express();
app.get('/', function (req, res) {
res.send('<button type="button" onclick="test();">Run Script</button>');
});
var server = app.listen(8081, function () {
var host = server.address().address;
var port = server.address().port;
console.log("Example app listening at http://%s:%s", host, port);
});
function test() {
var fork = require('child_process').fork;
var child = fork('./Demo');
}
我想做的是:
Run.js
,它有一個名為“Run script”的按鈕。 Demo.js
自動化腳本。 目前對我來說測試功能不起作用,無法在點擊按鈕上運行Demo.js
錯誤
Uncaught ReferenceError: test is not defined
at HTMLButtonElement.onclick
您正在客戶端調用功能test
,但該功能是在服務器端定義的。
您可以在客戶端創建一個表單,該表單會在單擊時向服務器發送一個發布請求。 然后在服務器端處理POST
請求以執行所需的代碼:
app.get('/', function (req, res) {
res.send(
'<form action="/run" method="POST">' +
' <input type="submit" name="run" value="Run Script" />' +
'</form>');
});
app.post('/run', function (req, res) {
var fork = require('child_process').fork;
var child = fork('./Demo');
res.send('done');
});
您還可以在客戶端發送帶有Ajax請求的POST
請求:
使用Ajax和Node.js的簡單按鈕單擊示例?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.