I want to get two elements from a page and put them into one object
const entryElements = await page.$$('div.kpi-entry');
const contents = await Promise.all(
entryElements.map(async (element) => {
const kpiValue = await (await element.$('span.text-xl'))?.innerText();
const kpiName = await (await element.$('eui-base-v0-tooltip'))?.innerText();
const kpiObject = {kpiValue,kpiName,};
return kpiObject;
})
kpiObject returns
{ kpiValue: '1', kpiName: 'Critical' },
{ kpiValue: '2', kpiName: 'Major' },
{ kpiValue: '3', kpiName: 'Minor' },
{ kpiValue: '4', kpiName: 'Warning' },
{ kpiValue: '5', kpiName: 'Indeterminate' }
but I expected
{
Critical: '1',
Major: '2',
Minor: '3',
Warning: '4',
Indeterminate: '5',
}
What is the best way to do this given this HTML?
<div class="kpi">
<div>
<!---->
<!---->
</div>
<!---->
<div class="kpi-entry">
<div class="kpi-item kpi-value ">
<span class="text-xl"><!---->3<!----></span>
<span class="text-lg text-color-gray"><!----> <!----></span>
<eui-base-v0-tooltip class="kpi-label text-color-gray" message="Critical" position="bottom" delay="500">
Critical
</eui-base-v0-tooltip>
</div>
</div>
<!---->
<div class="kpi-entry">
<div class="kpi-item kpi-value ">
<span class="text-xl"><!---->36<!----></span>
<span class="text-lg text-color-gray"><!----> <!----></span>
<eui-base-v0-tooltip class="kpi-label text-color-gray" message="Major" position="bottom" delay="500">
Major
</eui-base-v0-tooltip>
</div>
</div>
<!---->
<div class="kpi-entry">
<div class="kpi-item kpi-value ">
<span class="text-xl"><!---->5<!----></span>
<span class="text-lg text-color-gray"><!----> <!----></span>
<eui-base-v0-tooltip class="kpi-label text-color-gray" message="Minor" position="bottom" delay="500">
Minor
</eui-base-v0-tooltip>
</div>
</div>
<!---->
<div class="kpi-entry">
<div class="kpi-item kpi-value ">
<span class="text-xl"><!---->7<!----></span>
<span class="text-lg text-color-gray"><!----> <!----></span>
<eui-base-v0-tooltip class="kpi-label text-color-gray" message="Warning" position="bottom" delay="500">
Warning
</eui-base-v0-tooltip>
</div>
</div>
<!---->
<div class="kpi-entry">
<div class="kpi-item kpi-value ">
<span class="text-xl"><!---->0<!----></span>
<span class="text-lg text-color-gray"><!----> <!----></span>
<eui-base-v0-tooltip class="kpi-label text-color-gray" message="Indeterminate" position="bottom" delay="500">
Indeterminate
</eui-base-v0-tooltip>
</div>
</div>
<!---->
</div>