javascript - 通过 POST 请求将参数传递给 javascript 文件

标签 javascript backend nightmare

我希望能够使用 POST 请求运行 Web 自动化脚本文件。下面是一个代码示例,例如我想将一个参数传递给文件以使用用户指定的 URL(而不是显示的 URL)运行 .goto():

var Nightmare = require('nightmare');
var nightmare = Nightmare({ show: true });

nightmare
  .goto('https://duckduckgo.com')
  .type('#search_form_input_homepage', 'github nightmare')
  .click('#search_button_homepage')
  .wait('#zero_click_wrapper .c-info__title a')
  .evaluate(function () {
    return document.querySelector('#zero_click_wrapper .c-info__title a').href;
  })
  .end()
  .then(function (result) {
    console.log(result);
  })
  .catch(function (error) {
    console.error('Search failed:', error);
  });

有没有办法将这样的参数直接传递到 .js 文件中?

最佳答案

将对 nightmare 的调用包装在接受参数的函数中:

var Nightmare = require('nightmare');
var nightmare = Nightmare({ show: true });

function nightmareWrapper(urlArgument) {
    nightmare
        .goto(urlArgument)
        .type('#search_form_input_homepage', 'github nightmare')
        .click('#search_button_homepage')
        .wait('#zero_click_wrapper .c-info__title a')
        .evaluate(function () {
            return document.querySelector('#zero_click_wrapper .c-info__title a').href;
        })
        .end()
        .then(function (result) {
            console.log(result);
        })
        .catch(function (error) {
            console.error('Search failed:', error);
        });
}

// And call it like so:

var urlArgument = 'https://duckduckgo.com';
nightmareWrapper(urlArgument);

关于javascript - 通过 POST 请求将参数传递给 javascript 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45113189/

相关文章:

javascript - 反转表中的 tr

java - 读取外部网站提交的 Angular 中的 POST 表单

azure - 保护消费计划中 APIM(Azure API 管理)中的后端 API

javascript - 如何使用 Angular 10+ 将 API 的内容限制为 15 个单词(不是字符)?

javascript - 使用带有 NodeJS 的 NightmareJS 进行抓取

javascript - 选择按钮选项中的 anchor 链接或按钮

javascript - 如何使用 Javascript 编辑 JSON?

node.js - 在Nightmare.js中无法读取null的 'blur'属性

node.js - 如何在不挂机的情况下执行多重 Nightmare 功能

javascript - Mongoose 作用域函数中的使用值(value)