diff --git a/bigbluebutton-html5/imports/ui/components/video-provider/video-list/video-list-item/component.jsx b/bigbluebutton-html5/imports/ui/components/video-provider/video-list/video-list-item/component.jsx
index 1bf1ffe01d536408daaabb37bc2016ebea92f90d..4ee1dabca179bd8fb0d24098b9d0316a6c828686 100755
--- a/bigbluebutton-html5/imports/ui/components/video-provider/video-list/video-list-item/component.jsx
+++ b/bigbluebutton-html5/imports/ui/components/video-provider/video-list/video-list-item/component.jsx
@@ -159,7 +159,7 @@ class VideoListItem extends Component {
       >
         {
           !videoIsReady
-          && <div className={styles.connecting} />
+          && <div data-test="webcamConnecting" className={styles.connecting} />
         }
         <div
           className={styles.videoContainer}
diff --git a/bigbluebutton-html5/tests/puppeteer/webcam.test.js b/bigbluebutton-html5/tests/puppeteer/webcam.test.js
index 4aaa37f242d7e828a444eeed6dcb7b34e985a3f3..a7fdf455720ea4ff4997eaeb548623e82745dff9 100644
--- a/bigbluebutton-html5/tests/puppeteer/webcam.test.js
+++ b/bigbluebutton-html5/tests/puppeteer/webcam.test.js
@@ -1,13 +1,13 @@
 const Share = require('./webcam/share');
 const Check = require('./webcam/check');
-const LoadingTime = require('./webcam/loadtime');
+const Page = require('./core/page');
 
 describe('Webcam', () => {
   test('Shares webcam', async () => {
     const test = new Share();
     let response;
     try {
-      await test.init();
+      await test.init(Page.getArgsWithVideo());
       response = await test.test();
     } catch (e) {
       console.log(e);
@@ -17,25 +17,11 @@ describe('Webcam', () => {
     expect(response).toBe(true);
   });
 
-  test('Check Webcam loading time', async () => {
-    const test = new LoadingTime();
-    let response;
-    try {
-      await test.init();
-      response = await test.test();
-    } catch (e) {
-      console.log(e);
-    } finally {
-      await test.close();
-    }
-    expect(response).toBeLessThan(parseInt(process.env.CAMERA_SHARE_FAILED_WAIT_TIME));
-  });
-
   test('Checks content of webcam', async () => {
     const test = new Check();
     let response;
     try {
-      await test.init();
+      await test.init(Page.getArgsWithVideo());
       response = await test.test();
     } catch (e) {
       console.log(e);
diff --git a/bigbluebutton-html5/tests/puppeteer/webcam/check.js b/bigbluebutton-html5/tests/puppeteer/webcam/check.js
index 61846e1cc7f0e7e3a5e954c61674ae61db9800a5..85af2504aa78f2507e96be83f64cbdcb5fcb15ed 100644
--- a/bigbluebutton-html5/tests/puppeteer/webcam/check.js
+++ b/bigbluebutton-html5/tests/puppeteer/webcam/check.js
@@ -7,11 +7,9 @@ class Check extends Share {
   }
 
   async test() {
-    await util.startAndCheckForWebcams(this.page1);
-    await util.startAndCheckForWebcams(this.page2);
-    const responseUser1 = await util.webcamContentCheck(this.page1);
-    const responseUser2 = await util.webcamContentCheck(this.page2);
-    return responseUser1 && responseUser2;
+    await util.enableWebcam(this.page);
+    const respUser = await util.webcamContentCheck(this.page);
+    return respUser === true;
   }
 }
 module.exports = exports = Check;
diff --git a/bigbluebutton-html5/tests/puppeteer/webcam/elements.js b/bigbluebutton-html5/tests/puppeteer/webcam/elements.js
index 2f5ecf643175fc17914143b6ba256f8c896a8a99..d265160154120fe4846ccc7eb04b63c9f2e0182b 100644
--- a/bigbluebutton-html5/tests/puppeteer/webcam/elements.js
+++ b/bigbluebutton-html5/tests/puppeteer/webcam/elements.js
@@ -2,5 +2,4 @@ exports.joinVideo = 'button[data-test="joinVideo"]';
 exports.videoPreview = 'video[data-test="videoPreview"]';
 exports.startSharingWebcam = 'button[data-test="startSharingWebcam"]';
 exports.videoContainer = 'video[data-test="videoContainer"]';
-exports.webcamConnectingStatus = '[data-test="webcamConnectingStatus"]';
-exports.presentationFullscreenButton = '[data-test="presentationFullscreenButton"]';
+exports.webcamConnecting = '[data-test="webcamConnecting"]';
diff --git a/bigbluebutton-html5/tests/puppeteer/webcam/loadtime.js b/bigbluebutton-html5/tests/puppeteer/webcam/loadtime.js
deleted file mode 100644
index 1bb96551245a15e06f2cdfed442112765f0f2999..0000000000000000000000000000000000000000
--- a/bigbluebutton-html5/tests/puppeteer/webcam/loadtime.js
+++ /dev/null
@@ -1,19 +0,0 @@
-const Share = require('./share');
-const util = require('./util');
-
-class LoadingTime extends Share {
-  constructor() {
-    super('check-webcam-loading-time');
-  }
-
-  async test() {
-    await util.enableWebcam(this.page1);
-    await util.enableWebcam(this.page2);
-    const now = new Date().getMilliseconds();
-    await util.waitForWebcamsLoading(this.page1);
-    await util.waitForWebcamsLoading(this.page2);
-    const end = new Date().getMilliseconds();
-    return end - now;
-  }
-}
-module.exports = exports = LoadingTime;
diff --git a/bigbluebutton-html5/tests/puppeteer/webcam/share.js b/bigbluebutton-html5/tests/puppeteer/webcam/share.js
index c0d02cac7d6da04617b8988ebd579fc173b69410..42c52313814e0d69f5c2f37fa4c3d5144f0941f1 100644
--- a/bigbluebutton-html5/tests/puppeteer/webcam/share.js
+++ b/bigbluebutton-html5/tests/puppeteer/webcam/share.js
@@ -1,29 +1,15 @@
 const Page = require('../core/page');
 const util = require('./util');
-const params = require('../params');
 
-class Share {
+class Share extends Page{
   constructor() {
-    this.page1 = new Page();
-    this.page2 = new Page();
-  }
-
-  async init(meetingId) {
-    await this.page1.init(Page.getArgsWithVideo(), meetingId, { ...params, fullName: 'Streamer1' });
-    await this.page2.init(Page.getArgsWithVideo(), this.page1.meetingId, { ...params, fullName: 'Streamer2' });
+    super('webcam-test');
   }
 
   async test() {
-    await util.enableWebcam(this.page1);
-    await util.enableWebcam(this.page2);
-    const responseUser1 = await util.evaluateCheck(this.page1);
-    const responseUser2 = await util.evaluateCheck(this.page2);
-    return responseUser1 && responseUser2;
-  }
-
-  async close() {
-    await this.page1.close();
-    await this.page2.close();
+    await util.enableWebcam(this.page);
+    const response = await util.evaluateCheck(this.page);
+    return response;
   }
 }
 
diff --git a/bigbluebutton-html5/tests/puppeteer/webcam/util.js b/bigbluebutton-html5/tests/puppeteer/webcam/util.js
index c48e72a6010bc6e725d152a53dfe595bad71f9bd..c9a429d6a2c7a6165dcfa9e6e34b2ca4acaadd42 100644
--- a/bigbluebutton-html5/tests/puppeteer/webcam/util.js
+++ b/bigbluebutton-html5/tests/puppeteer/webcam/util.js
@@ -3,10 +3,10 @@ const we = require('./elements');
 async function enableWebcam(test) {
   // Enabling webcam
   await test.waitForSelector(we.joinVideo);
-  await test.click(we.joinVideo, true);
+  await test.click(we.joinVideo);
   await test.waitForSelector(we.videoPreview);
   await test.waitForSelector(we.startSharingWebcam);
-  await test.click(we.startSharingWebcam, true);
+  await test.click(we.startSharingWebcam);
 }
 
 async function getTestElement(element) {
@@ -15,8 +15,7 @@ async function getTestElement(element) {
 
 async function evaluateCheck(test) {
   await test.waitForSelector(we.videoContainer);
-  await test.waitForSelector(we.webcamConnectingStatus);
-  const videoContainer = await test.page.evaluate(getTestElement, we.presentationFullscreenButton);
+  const videoContainer = await test.evaluate(getTestElement, we.presentationFullscreenButton);
   const response = videoContainer !== null;
   return response;
 }
@@ -27,35 +26,41 @@ async function startAndCheckForWebcams(test) {
   return response;
 }
 
-async function checkCameras() {
-  const videos = document.querySelectorAll('video');
-  const lastVideoColor = document.lastVideoColor || {};
-  document.lastVideoColor = lastVideoColor;
+async function webcamContentCheck(test) {
+  await test.waitForSelector(we.videoContainer);
+  await test.waitForFunction(() => !document.querySelector('[data-test="webcamConnecting"]'));
+
+  const repeats = 5;
+  let check;
+  for (let i = repeats; i >= 1; i--) {
+    console.log(`loop ${i}`);
+    const checkCameras = function (i) {
+      const videos = document.querySelectorAll('video');
+      const lastVideoColor = document.lastVideoColor || {};
+      document.lastVideoColor = lastVideoColor;
 
-  for (let v = 0; v < videos.length; v++) {
-    const video = videos[v];
-    const canvas = document.createElement('canvas');
-    const context = canvas.getContext('2d');
-    context.drawImage(video, 0, 0, video.videoWidth, video.videoHeight);
-    const pixel = context.getImageData(50, 50, 1, 1).data;
-    const pixelString = new Array(pixel).join(' ').toString();
+      for (let v = 0; v < videos.length; v++) {
+        const video = videos[v];
+        const canvas = document.createElement('canvas');
+        const context = canvas.getContext('2d');
+        context.drawImage(video, 0, 0, video.videoWidth, video.videoHeight);
+        const pixel = context.getImageData(50, 50, 1, 1).data;
+        const pixelString = new Array(pixel).join(' ').toString();
 
-    if (lastVideoColor[v]) {
-      if (lastVideoColor[v] == pixelString) {
-        return false;
+        if (lastVideoColor[v]) {
+          if (lastVideoColor[v] == pixelString) {
+            return false;
+          }
+        }
+        lastVideoColor[v] = pixelString;
+        return true;
       }
-    }
-    return lastVideoColor[v] !== pixelString === true;
-  }
-}
+    };
 
-async function webcamContentCheck(test) {
-  const repeats = 5;
-  let check;
-  for (let i = repeats; i >= 0; i--) {
-    await test.page.waitFor(parseInt(process.env.LOOP_INTERVAL));
-    return check = await test.page.evaluate(checkCameras);
+    check = await test.evaluate(checkCameras, i);
+    await test.waitFor(parseInt(process.env.LOOP_INTERVAL));
   }
+  return check === true;
 }
 
 exports.startAndCheckForWebcams = startAndCheckForWebcams;