私はchrome-remote-interfaceでクローラを構築しようとしていますが、特定のターゲットID、クラスなどの複数のdom要素を取得する方法はわかりません。例のためchrome-remote-interfaceノードjsで複数のDOM要素を取得するにはどうすればよいですか?
:
price = document.getelementbyid('price')
name= document.getelementbyid('name')
コード
const CDP = require('chrome-remote-interface');
CDP((client) => {
// Extract used DevTools domains.
const {Page, Runtime} = client;
// Enable events on domains we are interested in.
Promise.all([
Page.enable()
]).then(() => {
return Page.navigate({url: 'http://example.com'})
});
// Evaluate outerHTML after page has loaded.
Page.loadEventFired(() => {
Runtime.evaluate({expression: 'document.body.outerHTML'}).then((result) => {
//How to get Multiple Dom elements
console.log(result.result.value);
client.close();
});
});
}).on('error', (err) => {
console.error('Cannot connect to browser:', err);
});
更新
const CDP = require('chrome-remote-interface');
CDP((client) => {
// Extract used DevTools domains.
const {DOM,Page, Runtime} = client;
// Enable events on domains we are interested in.
Promise.all([
Page.enable()
]).then(() => {
return Page.navigate({url: 'https://someDomain.com'});
})
Page.loadEventFired(() => {
const expression = `({
test: document.getElementsByClassName('rows')),
})`
Runtime.evaluate({expression,returnByValue: true}).then((result) => {
console.log(result.result) // Error
client.close()
})
})
}).on('error', (err) => {
console.error('Cannot connect to browser:', err);
});
エラー
{ type: 'object',
subtype: 'error',
className: 'SyntaxError',
description: 'SyntaxError: Unexpected token)',
objectId: '{"injectedScriptId":14,"id":1}' }
実際に要素のリストを繰り返し処理したいのですが、どこが間違っているのか分かりません
をあなたのためのおかげで答える。しかし、まだそれは私に質問をいくつか有線の誤差病気のアップデートを提供します – Nane