我的 JS 文件“login.js”可以使用“node login.js”从命令行运行。如果我想更改使用的 URL,我必须进入文件并编辑 URL。我希望能够通过命令行将 URL 作为参数传递,例如“node login.js https://example.com”,并让代码使用该 URL。我认为这很简单,但我似乎无法通过在线阅读来解决它。const puppeteer = require('puppeteer');const C = require('./constants');const USERNAME_SELECTOR = '#email';const PASSWORD_SELECTOR = '#password';const CTA_SELECTOR = '#next';const CTA_SELECTOR2 = '#submit-btn';async function startBrowser() { const browser = await puppeteer.launch(); const page = await browser.newPage(); return {browser, page};}async function closeBrowser(browser) { return browser.close();}async function playTest(url) { const {browser, page} = await startBrowser(); page.setViewport({width: 1366, height: 768}); await page.goto(url); await page.waitForSelector(USERNAME_SELECTOR); await page.click(USERNAME_SELECTOR); await page.keyboard.type(C.username); await page.click(CTA_SELECTOR); console.log('before waiting');await delay(10000);console.log('after waiting'); await page.click(PASSWORD_SELECTOR); await page.keyboard.type(C.password); await page.click(CTA_SELECTOR2); await page.waitForNavigation(); await page.screenshot({path: 'screenshot.png'});}(async () => { await playTest("https://example.com"); process.exit(1);})();function delay(time) { return new Promise(function(resolve) { setTimeout(resolve, time) });}
1 回答
慕田峪4524236
TA贡献1875条经验 获得超5个赞
在许多程序(包括节点)中,参数可以通过我们称为标志的东西传递给您的脚本。
Node 本身是一个程序,当您编写 时node foo.js
,foo.js
它本身就是节点程序的一个参数。要通过命令行使用标志通过双破折号传递参数。
例子:
node foo.js bar/baz/index.html
现在可以访问该值,通过process.argv
该值是传递给它的所有参数的数组。它看起来像这样
['node.exe', 'foo.js', 'bar/baz/indez.html']
添加回答
举报
0/150
提交
取消