gpt4 book ai didi

javascript - 如何从其他 js 文件执行 selenium Node js 脚本

转载 作者:搜寻专家 更新时间:2023-10-31 23:36:59 25 4
gpt4 key购买 nike

我已经按照以下方式创建了文件:

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');
}

我想做的是:

  1. 当我运行文件 Run.js 时,它有一个名为“运行脚本”的按钮。
  2. 只要我点击那个按钮,它就会运行存储在 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 请求:
Simple button click example with Ajax and Node.js?

关于javascript - 如何从其他 js 文件执行 selenium Node js 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46729787/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com