querySelector()
возвращает значение null
, если в DOM нет доступного элемента с определенным селектором
Таким образом, вы можете написать простую вспомогательную функцию:
const getInnerTextForSelector = (selector) => {
const element = document.querySelector(selector);
if (element)
return element.innerText;
return '';
};
и запустить, например, для#idProductType
селектор:
const producttype = getInnerTextForSelector('#idProductType');
Или вы можете написать помощник, который будет работать на странице кукловода и ElementHandle's:
const getElementForSelector = async (page, selector) => {
return (await element.$(selector)) || undefined;
};
export const getInnerText = async (page, selector) => {
const elementForSelector = await getElementForSelector(page, selector);
try {
if (elementForSelector)
return (
(await elementForSelector.evaluate(element => {
return element.innerText;
})) || ''
);
} catch {
return '';
}
};
, а затем запустить, например, селектор #idProductType
:
const producttype = await getInnerText(page, '#idProductType');