Zoom Share Screen Issue With The Help Of Selenium Web Driver

Hello,
i am using selenium webdriver for in my desktop application for sharing screen on zoom while working with two screens but i am not able to share screens as my code work previously - here is my code

const {Builder, By, Key, until} = require(‘selenium-webdriver’);
const { ipcMain } = require(‘electron’);
let driver;
const connectToWiniumDriver = async () => {
driver = await new Builder().usingServer(WINIUM_DRIVER_URL)
.withCapabilities({
‘app’: path.join(vendorsPath, ‘rundll32.exe’),
})
.forBrowser(‘windows’)
.build();
// await driver.manage().timeouts().implicitlyWait(3000);
};

ipcMain.on(‘connect-to-zoom-meeting’, async (event, args)=>{
try {
console.log(‘args’, args);
console.log(‘line 250’, currentTime());
if (args.meetingLink) {
//Check if zoom is present
let zoomPresent = checkForZoom();
if (zoomPresent.zoom === false ) {
return throwError({errMsg : ‘Zoom Application is not installed in your system. Please install to proceed.’});
}
//Check for Java
let javaPresent = await checkForJava();
if (javaPresent.java === false ) {
return throwError({errMsg : ‘JAVA is not installed in your system. Please install it to procced.’});
}
stopConnectingProcess = false;
locateChrome(async function(chromePath) {
try {
await updatePreference();
/** Find zoom running process /
const { matchingProcess: runningZoomProcess } = await findProcessByName([{
processName: ‘Zoom’,
processTitle: ‘Zoom Meeting’
}], false);
console.log(‘line 259’, currentTime());
/
* kill process if zoom is already running */
try {
runningZoomProcess.map(zoomProcess => {
kill(zoomProcess.pid);
});
} catch (e) {
console.log(‘error in killing zoom running process:’, e);
}
console.log(‘line 268’, currentTime());
try {
if (_.isNull(chromePath) || _.isUndefined(chromePath)) {
let chromiumPath = path.join(vendorsPath, ‘chromium’, ‘chrome.exe’);
zoomBrowser = await puppeteer.launch({…puppeteerOptions, executablePath: chromiumPath});
} else {
zoomBrowser = await puppeteer.launch({…puppeteerOptions, executablePath: chromePath});
}
} catch (e) {
try {
if (!zoomBrowser) {
zoomBrowser = await puppeteer.connect({browserURL:BROWSER_DEBUG_URL, defaultViewport: null});
}
} catch (e) {
console.error(‘error in opening browser’, e);
// Throw error
throwError({ errMsg: ‘We are not able to open browser, Please try again.’ });
return;
}
}
connectToWiniumDriver();
console.log(‘line 293’, currentTime());
win.webContents.send(‘update-loader’, { message: ‘Opening meeting link’ });

          zoomPageTarget = await zoomBrowser.newPage();
          console.log('line 315', currentTime());
          let zoomMeetingInvitaion = args.meetingLink;
          let zoomMeetingPasscode = args.meetingPasscode;
          let zoomMeetingUsername = args.userName ? args.userName : 'Unknown';
          await zoomPageTarget.goto(zoomMeetingInvitaion);

          console.log('line 328', currentTime());
          console.log('fully loaded');
          await zoomPageTarget.hover('body').then(async () => {
            ks.setOption('globalDelayPressMillisec', 10);
            await ks.sendKeys(['left', 'enter']);
            console.log('zoom launcher page launched with no errors');
          }).catch((e) => {
            console.log('zoom launcher error:', e);
          });
          // await sleep(7000);
          win.webContents.send('update-loader', { message: 'Opening and detecting zoom meeting' });
          let totalWaitingTime = 8000;
          let waitingTimeBetweenIteration = 500;
          let timeConsumed = 0;
          let meetingStartedProcessResult = false;
          console.log('line 347', currentTime());
          for (let i = 0; true; i++) {
            meetingStartedProcessResult = await findProcessByName([{
              processTitle: 'Connecting.',
              processName: 'Zoom'
            }, {
              processTitle: 'Waiting for Host',
              processName: 'Zoom'
            }, {
              processTitle: 'Enter meeting passcode',
              processName: 'Zoom'
            }, {
              processTitle: 'Zoom',
              processName: 'Zoom'
            }, {
              processTitle: 'This meeting is being recorded by the host or a participant',
              processName: 'Zoom'
            }, {
              processTitle: 'Zoom Meeting',
              processName: 'Zoom'
            }, {
              processTitle: 'Video Preview',
              processName: 'Zoom'
            }], false);
            console.log('meetingStartedProcessResult', meetingStartedProcessResult);
            if (meetingStartedProcessResult.found) {
              await zoomBrowser.close();
              break;
            }

            if (stopConnectingProcess) {
              break;
            }

            if (timeConsumed >= totalWaitingTime) {
              break;
            }

            await sleep(waitingTimeBetweenIteration);
            timeConsumed += waitingTimeBetweenIteration;
          }
          console.log('line 373', currentTime());

          console.log('meetingStartedProcessResult 380', meetingStartedProcessResult);
          if (!meetingStartedProcessResult.found) {
            win.webContents.send('update-loader', { message: 'Meeting not detected, trying to open meeting' });
            try {
              // win.minimize();
              // await sleep(1000);
              ks.setOption('globalDelayPressMillisec', 100);
              await ks.sendKeys(['left', 'enter']);
              if (await driver.findElement(By.name('Open Zoom Meetings?')).isDisplayed()) {
                console.log('in true');
                // await driver.findElement(By.name('Address and search bar')).click();
                await sleep(100);
                ks.setOption('globalDelayPressMillisec', 100);
                await ks.sendKeys(['tab', 'tab', 'space', 'tab', 'enter']);
                console.log('355 process end');
                // win.restore();
              }
            } catch (e) {
              // win.restore();
              console.log(e);
              console.log('in catch, popop not found');
            }
          }
          console.log('line 413', currentTime());

          win.webContents.send('update-loader', { message: 'Detecting meeting' });

          totalWaitingTime = 10000;
          timeConsumed = 0;
          let zoomMeeting = {};
          for (let i = 0; true; i++) {
            console.log('loop started', i, currentTime());
            let findProcessResult;

            findProcessResult = await findProcessByName([{
                processTitle: 'Zoom Meeting',
                processName: 'Zoom',
                exactMatch: false
              }, {
                processTitle: 'Connecting.',
                processName: 'Zoom'
              }, {
                processTitle: 'Waiting for Host',
                processName: 'Zoom'
              }, {
                processTitle: 'Enter meeting passcode',
                processName: 'Zoom'
              }, {
                processTitle: 'This meeting is being recorded by the host or a participant',
                processName: 'Zoom'
              }, {
                processTitle: 'Video Preview',
                processName: 'Zoom'
              }, {
                processTitle: 'Zoom',
                processName: 'Zoom'
              }
            ], true);

            console.log('findProcessResult', JSON.stringify(findProcessResult));
            console.log('loop started', i, currentTime());

            let zoomMeetingRunning = _.filter(findProcessResult.matchingProcess, x => x.mainWindowTitle.includes('Zoom Meeting') && x.processName === 'Zoom');
            let waitingForHost = _.filter(findProcessResult.matchingProcess, x => x.mainWindowTitle.includes('Zoom') && x.processName === 'Zoom');
            let meetingPasscode = _.filter(findProcessResult.matchingProcess, x => x.mainWindowTitle.includes('Enter meeting passcode') && x.processName === 'Zoom');
            let connectingWindow = _.filter(findProcessResult.matchingProcess, x => x.mainWindowTitle.includes('Connecting.') && x.processName === 'Zoom');
            let zoomWindow = _.filter(findProcessResult.matchingProcess, x => x.mainWindowTitle.includes('Zoom') && x.processName === 'Zoom');
            let recordingWindow = _.filter(findProcessResult.matchingProcess, x => x.mainWindowTitle.includes('This meeting is being recorded by the host or a participant') && x.processName === 'Zoom');
            let videoPreviewWindow = _.filter(findProcessResult.matchingProcess, x => x.mainWindowTitle.includes('Video Preview') && x.processName === 'Zoom');
            if (stopConnectingProcess) {
              process.kill(findProcessResult.matchingProcess[1].pid);
              break;
            }

            if (zoomMeetingRunning.length > 0) {
              win.webContents.send('update-loader', { message: 'Meeting detected, trying to connect' });
              [zoomMeeting] = zoomMeetingRunning;
              console.log('Meeting Started');
              break;
            } else if (waitingForHost.length > 0) {
              console.log('Please wait for the host to start this meeting.');
              win.webContents.send('update-loader', { message: 'Asking to be let in... You will join the call when someone lets you in', type: 'waiting-for-host-zoom' });
              timeConsumed = 0;
            } else if (meetingPasscode.length > 0) {
              if (zoomMeetingPasscode) {
                win.webContents.send('update-loader', { message: 'Entering meeting passcode' });
                await pw.focusWindow(findProcessResult.process);
                await ks.sendText(zoomMeetingPasscode);
                await ks.sendKeys(['tab', 'enter']);
              } else {
                win.webContents.send('update-loader', { message: 'Please enter meeting passcode' });
                await pw.focusWindow(findProcessResult.process);
              }
              timeConsumed = 0;
            } else if (connectingWindow.length > 0) {
              console.log('Connecting.. waiting for response');
              win.webContents.send('update-loader', { message: 'Connecting.. waiting for response' });
              timeConsumed = 0;
            } else if (recordingWindow.length > 0) {
              win.webContents.send('update-loader', { message: 'Meeting detected, trying to connect' });
              let [recordingWindowProcess] = recordingWindow;
              await pw.focusWindow(recordingWindowProcess);
              await ks.sendKeys(['tab', 'tab', 'tab', 'space']);
              timeConsumed = 0;
              continue;
            } else if (videoPreviewWindow.length > 0) {
              win.webContents.send('update-loader', { message: 'Video Preview, trying to start meeting' });
              let [recordingVideoProcess] = videoPreviewWindow;
              await pw.focusWindow(recordingVideoProcess);
              await ks.sendKeys(['tab', 'tab', 'tab', 'space', 'tab', 'space']);
              timeConsumed = 0;
              continue;
            } else if (zoomWindow.length > 0) {
              // try {
              //     if(await driver.findElement(By.name('Leave & Start')).isDisplayed()) {
              //         console.log('Leave & Start, found');
              //         await driver.findElement(By.name('Leave & Start')).click();
              //     }
              // } catch(e) {
              // try {
              //   if (await driver.findElement(By.name('Please enter meeting passcode')).isDisplayed()) {
              //     console.log('Please enter meeting passcode, found');
              //     await driver.findElement(By.name('Please enter meeting passcode')).click();
              //     await ks.sendText(zoomMeetingPasscode);
              //     await ks.sendCombination(['shift', 'tab']);
              //     await driver.findElement(By.className('EditWnd')).clear();
              //     await ks.sendText(zoomMeetingUsername);
              //     await ks.sendKeys(['tab', 'tab', 'tab', 'tab', 'tab', 'tab', 'space']);
              //   }
              // } catch (e) {
              //   console.log('in catch, enter only username');
              //   console.log('Entering username');
              //   await pw.focusWindow(findProcessResult.process);
              //   await ks.sendText(zoomMeetingUsername);
              //   await ks.sendKeys(['tab', 'tab', 'tab', 'tab', 'tab', 'space']);
              // }
              // }
              // timeConsumed = 0;
            }

            if (timeConsumed >= totalWaitingTime) {
              console.log(`Waiting time is more then ${timeConsumed}ms, closing this loop`);
              break;
            }
            console.log('loop ended, waiting for some time', i, currentTime());
            await sleep(waitingTimeBetweenIteration);
            console.log('finally loop ended starting new loop', i, currentTime());
            timeConsumed += waitingTimeBetweenIteration;
          }
          console.log('line 515', currentTime());
          console.log('reset process');
          if (!stopConnectingProcess) {
            if (zoomMeeting.mainWindowTitle) {
              meetingName = zoomMeeting.mainWindowTitle;
              meetingProcess = zoomMeeting;
              meetingConnected = true;
              isMeetingProcessRunning();
              win.webContents.send('process-found', {
                processFound: true,
                meetingType
              });
              await pw.focusWindow(meetingProcess);
              ks.sendCombination(['windows', 'up']);
            } else {
              const processFound = await resetProcess('Zoom Meeting');
              if (processFound) {
                meetingConnected = true;
                isMeetingProcessRunning();
              }
              win.webContents.send('process-found', {
                processFound,
                meetingType
              });
            }
          }

          try {
            await zoomBrowser.close();
          } catch (e) {
            /** Do nothing */
          }

        } catch (e) {
          console.error('error in zoom meeting 285', e);
          throwError({ errMsg: 'Something went wrong, Please try again.' });
        }
      });
    } else {
      throwError({errMsg: 'Meeting link not found'});
      console.error('Meeting link not found');
      /** Throw error */
    }
  } catch (e) {
    console.error('error in zoom meeting 549', e);
    throwError({errMsg: 'Something went wrong, Please try again.'});
    /** Throw error */
  }
});

ipcMain.on(‘zoom-entire_screen_2_share’, async (event, args)=>{
win.setAlwaysOnTop(false, ‘floating’);
await fireSendkeys(args.shortcut);
try {
await driver.findElement(By.name(‘Basic’)).click();
const handles = await driver.getAllWindowHandles();
console.log(‘handles’,handles);
// await driver.findElement(By.name(‘Second screen, share your second screen’)).click();
await driver.findElement(By.name(‘Share Screen 2’)).click();
win.setAlwaysOnTop(true, ‘floating’);
} catch (e) {
console.error(e);
win.setAlwaysOnTop(true, ‘floating’);
win.webContents.send(‘open-button’, { button: ‘share’ });
throwError({errMsg: ‘We are not able to detect this element, Please try again.’});
}
hideLoader();
});

this is my code and i am not able to share screens please help me in this