This POM simplifies the process of interacting with Genesys's WebRTC Softphone's UI when working with testing tools like Puppeteer. It was created to serve my use-case that I posted about but can easily be extended.
Usage example:
const softphone = await webRtcSoftphone(frame);
const audioInput = await softphone.getAudioInputFromWebRtcSettings();
console.log(`Audio Input: ${audioInput}`);
await softphone.waitForCallThenAnswer(30000); // Waits at least 30 seconds for a call to answer
Read my blog article Automated tests using Genesys Cloud's WebRTC softphone to see how I am using this.
WARNING: Genesys may change the underlying element selectors in their softphone, causing this to break. This is an inherent problem in driving a UI you don't own.