Как объединить консольные команды браузера в одну на вывод?
Имеется страничка: https://ru.warface.com/officers/
Данную страницу просматривать может только мой авторизованный аккаунт (ибо я офицер клана).
Получить нужно все никнеймы игроков на этой странице, количество набранных ими очков, дата вступления.
Использую браузер Google Chrome.
Вот так нужные данные выглядят в инспекторе: https://ibb.co/qCpV5gp
Вот такие команды в консоли выдают полную информацию о 1ом игроке из таблицы:
document.getElementsByClassName('oc_1')[0].innerText
document.getElementsByClassName('oc_3')[0].innerText
document.getElementsByClassName('oc_5')[0].innerText
Данные второго игрока:
document.getElementsByClassName('oc_1')[1].innerText
document.getElementsByClassName('oc_3')[1].innerText
document.getElementsByClassName('oc_5')[1].innerText
И так далее, всего 50 игроков, меняется только [0]
Основной скрипт я пишу на AHK, и в целом он готов, но он уж очень медленно выполняется, ибо все JS скрипты прописаны отдельными командами. В JS я слаб, и прошу помощи, как объединить это в 1 скрипт, который выдавал бы все значения сразу?
Ответы (1 шт):
Используем метод getElementsByTagName, его как и остальные getElement... можно вызывать как на документе, так и на любом элементе.
const rows = Array.from(document.getElementsByTagName("tr"));
const result = rows.map(it => extractUserInfoFromTableRow(it));
console.log(result)
function extractUserInfoFromTableRow(row) {
const data = row.getElementsByTagName("td");
return {
userName: data[0].innerText,
value: data[2].innerText,
date: data[4].innerText
}
}