问题描述
好吧,这个让我摸不着头脑。我已经定义了 getDataArrayForTargetColumn:
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;
}
和 getDataArrayForTargetColumn2 定义:
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;
}
当被调用时:
async verifySomething{
let columnData = await this.getDataArrayForTargetColumn();
let someCssSelector = '[data-test-value-invoice-number-payment-requests-page="true"]';
let columnData2 = await this.getDataArrayForTargetColumn2(dog);
}
第一个 columnData 有效,第二个 columnData2 无效。 columnData2 给了我一个:
错误:评估失败:ReferenceError:someCssSelector 未定义
但它显然是。当我放置断点时,它似乎死在 let targetColumnDataArray = await page.evaluate(() => {
那么,大家怎么了?为什么我不能传入一个变量?我在这里错过了一些愚蠢的东西吗?
================================================ ==============
更新:
如果我将定义 CSS Selector 移动到本地函数中,这仍然不起作用。
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;
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)