Как вызвать щелчок по произвольной опции контекстного меню с помощью Puppeteer - PullRequest
0 голосов
/ 02 августа 2020

Работая над некоторыми задачами автоматизации, я застрял. Итак, у меня есть таблица с несколькими строками, и мне нужно выбрать каждую строку одну за другой и выполнить событие щелчка, которое открывает настраиваемое контекстное меню, а затем мне нужно щелкнуть параметр контекстного меню, чтобы открыть диалоговое окно box.

Итак, я могу открыть контекстное меню custom , но не смог активировать опцию щелчка / выбора из контекстного меню, чтобы открыть диалоговое окно. Я надеюсь, что это возможно, и пробовал разные вещи, но безуспешно.

Ниже приведен пример моего кода:

  let trs = await page2.$$('#ctl00_Content_GridView1 > tbody > tr');
  for (let i = 0; i < trs .length; i++) {
       const item = await page2.evaluateHandle((i) => {
         return document.querySelectorAll('#ctl00_Content_GridView1 > tbody > tr')[i];
       }, i);
 
    //select the row first to make it active
    item.click();
    await page2.waitForSelector('#ctl00_Content_GridView1 > tbody > tr.gridrow.wrapword.info.active');
    //perfrom right click on the selected row to open context menu
    item.click({
      button: 'right',
    })
    await page2.waitForSelector('#context-menu-layer', { visible: true, timeout: 0 });
    
    //select the context menu option and trigger click to open dialog box.
    // nothing happens :(
    await page2.evaluate(async () => {
       //click option
     document.querySelector("body > ul > li.context-menu-item.icon.icon").click();
    });
    
    await page2.waitForSelector('#ctl00_Content_Div2');
 }
...