Я хочу получать данные от пользователя и совершать транзакции с этими данными. Нужно ли создавать HTML-файл для этого? Или я могу сделать это на одной странице?
Например,
const option = (await frame1. $ X ('// * [@ id = "classname"] / option [text () = "example.com"]')) [0];
Я хочу, чтобы пользователь вводил данные example.com, как я могу получить их от пользователя и изменить example.com?
const puppeteer = require('puppeteer');
const http = require('http');
const server = http.createServer(function(request, response) {
console.dir(request.param)
if (request.method == 'POST') {
console.log('POST')
var body = ''
request.on('data', function(data) {
body += data
console.log('Partial body: ' + body)
})
request.on('end', function() {
console.log('Body: ' + body)
response.writeHead(200, {'Content-Type': 'text/html'})
response.end('post received')
})
} else {
console.log('GET')
var html = `
<html>
<body>
<form method="post" action="http://localhost:3000">Name:
<input type="text" name="name" />
<input type="submit" value="Submit" />
</form>
</body>
</html>`
response.writeHead(200, {'Content-Type': 'text/html'})
response.end(html)
}
})
const port = 3000
const host = '127.0.0.1'
server.listen(port, host)
console.log(`Listening at http://${host}:${port}`);
//this change maybe then?
(async () => {
const browser = await puppeteer.launch({headless:false})
const page = await browser.newPage()
await page.goto(body.name);
const iframeHandle = await page.$("frame[name='main']");
const frame = await iframeHandle.contentFrame();
const option = (await frame.$x('//*[@id = "classname"]/option[text() = "@body.name"]'))[0];
})()