Okay, this one has me scratching my head. I've got getDataArrayForTargetColumn defined:
async getDataArrayForTargetColumn() {
if (await page.waitForSelector('[data-test-value-invoice-number-payment-requests-page="true"]')) {
let targetColumnDataArray = await page.evaluate(() => {
let tds = Array.from(document.querySelectorAll('[data-test-value-invoice-number-payment-requests-page="true"]'));
return tds.map(td => td.textContent.trim());
});
return targetColumnDataArray;
}
return settings._neg_1;
}
and getDataArrayForTargetColumn2 defined:
async getDataArrayForTargetColumn2(someCssSelector) {
if (await page.waitForSelector(someCssSelector)) {
let targetColumnDataArray = await page.evaluate(() => {
let tds = Array.from(document.querySelectorAll(someCssSelector));
return tds.map(td => td.textContent.trim());
});
return targetColumnDataArray;
}
return settings._neg_1;
}
And when called:
async verifySomething{
let columnData = await this.getDataArrayForTargetColumn();
let someCssSelector = '[data-test-value-invoice-number-payment-requests-page="true"]';
let columnData2 = await this.getDataArrayForTargetColumn2(dog);
}
The first one, columnData, works and the second one, columnData2, does not. columnData2 gives me a:
Error: Evaluation failed: ReferenceError: someCssSelector is not defined
but it clearly is. When I put breakpoints, it seems to die at the let targetColumnDataArray = await page.evaluate(() => {
So, what's going on folks? Why can't I pass a variable in? Am I missing something stupid here?
============================================================
UPDATE:
This still doesn't work if I move the defining the CSS Selector to within the local function.
async getDataArrayForTargetColumn2() {
let someCssSelector = '[data-test-value-invoice-number-payment-requests-page="true"]';
if (await page.waitForSelector(someCssSelector)) {
let targetColumnDataArray = await page.evaluate(() => {
let tds = Array.from(document.querySelectorAll(someCssSelector));
return tds.map(td => td.textContent.trim());
});
return targetColumnDataArray;
}
return settings._neg_1;
}