我正在尝试从excel文件中的单元格获取值,并将其作为参数传递给我的方法之一
如果我只是硬编码参数并将其移到site_num
的{{1}}之外,我就可以输入.then(function)
例如readFile
export_page.enterSiteId('20003');
它说找不到找到 base_page.clickExportLink(); //Clicking the export link
var workbook = new Excel.Workbook();
workbook.xlsx.readFile('D:\\Project1\\testdata\\Book1.xlsx').then(function () {
var worksheet1 = workbook.getWorksheet('Sheet2');
var Row = worksheet1.getRow(1);
site_num = Row.getCell(2).value;
export_page.enterSiteId(site_num); //here is the problem where, it wont enter the value
console.log(site_num); //i am able to print the value
var worksheet2 = workbook.getWorksheet('Sheet1');
for (var i = 2; i < worksheet2.rowCount; i++) {
var Row = worksheet2.getRow(i);
site_field = Row.getCell(1).value;
cust_field = Row.getCell(2).value;
status = Row.getCell(3).value;
template.customField(cust_field);
}
});
export_page.clickSearchBtn(); //Click the search button after the site_num is entered
的定位器。
答案 0 :(得分:0)
我的猜测是您的“工作簿”库正在执行的操作是异步的,因此请尝试
workbook.xlsx.readFile('D:\\Project1\\testdata\\Book1.xlsx').then(async function () {
var worksheet1 = await workbook.getWorksheet('Sheet2');
var Row = await worksheet1.getRow(1);
site_num = await Row.getCell(2).value;
await export_page.enterSiteId(site_num);
console.log(site_num);
var worksheet2 = await workbook.getWorksheet('Sheet1');
for (var i = 2; i < worksheet2.rowCount; i++) {
var Row = await worksheet2.getRow(i);
site_field = await Row.getCell(1).value;
cust_field = await Row.getCell(2).value;
status = await Row.getCell(3).value;
await template.customField(cust_field);
}
});
export_page.clickSearchBtn(); //Click the search button after the site_num is entered