无法使用xpath单击元素-TypeError:无法读取未定义的属性“ click”

时间:2019-08-05 14:02:26

标签: node.js puppeteer

我试图单击div中以下CSS选择器的复选框:

#sheet1 > tbody > tr:nth-child(2) > td > div > div.GMPageOne > table > tbody > tr.GMDataRow.GMClassFocused > td.GMClassFocusedCell.GMWrap0.GMAlignCenter.GMBool0.GMCell.IBSheetFont0.GMEmpty.HideCol0C2

我尝试了与Google搜索不同的方法,但是没有用。

const example = await page.$x('//*[@id="sheet1"]/tbody/tr[2]/td/div/div[1]/table/tbody/tr[2]/td[3]',{waitUntil: 'networkidle0',});
  delay(1000);
  await example[0].click();

这给出了一个错误:

  

TypeError:无法读取未定义的属性“ click”       在C:\ Apps \ headless \ node_modules \ project \ esi.js:60:20       在process._tickCallback(internal / process / next_tick.js:68:7)

1 个答案:

答案 0 :(得分:1)

它看起来像语法无效。 试试这个:

await page.waitForXPath('//*[@id="sheet1"]/tbody/tr[2]/td/div/div[1]/table/tbody/tr[2]/td[3]', 5000);
const [example] = await page.$x('//*[@id="sheet1"]/tbody/tr[2]/td/div/div[1]/table/tbody/tr[2]/td[3]');
if(example) await example.click();