diff --git a/webapp-frontend/e2e/src/app.e2e-spec.ts b/webapp-frontend/e2e/src/app.e2e-spec.ts
index e72cb6e..fb7e14f 100644
--- a/webapp-frontend/e2e/src/app.e2e-spec.ts
+++ b/webapp-frontend/e2e/src/app.e2e-spec.ts
@@ -17,26 +17,25 @@
  * limitations under the License.
  * ========================LICENSE_END===================================
  */
-import { AppPage } from './app.po';
-import { browser, logging } from 'protractor';
+import { browser, by, element, logging } from "protractor";
 
-describe('workspace-project App', () => {
-  let page: AppPage;
+describe("workspace-project App", () => {
 
   beforeEach(() => {
-    page = new AppPage();
   });
 
-  it('should display welcome message', () => {
-    page.navigateTo();
-    expect(page.getTitleText()).toEqual('Welcome to controlpanelApp!');
+  it("should display title", () => {
+    browser.get("http://localhost:4200/");
+    expect(browser.getTitle()).toEqual("Non-RT RIC Control Panel");
   });
 
   afterEach(async () => {
     // Assert that there are no errors emitted from the browser
     const logs = await browser.manage().logs().get(logging.Type.BROWSER);
-    expect(logs).not.toContain(jasmine.objectContaining({
-      level: logging.Level.SEVERE,
-    }));
+    expect(logs).not.toContain(
+      jasmine.objectContaining({
+        level: logging.Level.SEVERE,
+      })
+    );
   });
 });
diff --git a/webapp-frontend/e2e/src/app.po.ts b/webapp-frontend/e2e/src/app.po.ts
deleted file mode 100644
index 7b1ccce..0000000
--- a/webapp-frontend/e2e/src/app.po.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================LICENSE_END===================================
- */
-import { browser, by, element } from 'protractor';
-
-export class AppPage {
-  navigateTo() {
-    return browser.get('/') as Promise<any>;
-  }
-
-  getTitleText() {
-    return element(by.css('app-root h1')).getText() as Promise<string>;
-  }
-}
diff --git a/webapp-frontend/e2e/tsconfig.e2e.json b/webapp-frontend/e2e/tsconfig.e2e.json
index a6dd622..557cc74 100644
--- a/webapp-frontend/e2e/tsconfig.e2e.json
+++ b/webapp-frontend/e2e/tsconfig.e2e.json
@@ -3,7 +3,7 @@
   "compilerOptions": {
     "outDir": "../out-tsc/app",
     "module": "commonjs",
-    "target": "es5",
+    "target": "es2015",
     "types": [
       "jasmine",
       "jasminewd2",
diff --git a/webapp-frontend/package.json b/webapp-frontend/package.json
index 16f2687..75f7ced 100644
--- a/webapp-frontend/package.json
+++ b/webapp-frontend/package.json
@@ -8,7 +8,8 @@
     "build": "ng build",
     "test": "ng test --watch=true",
     "lint": "ng lint",
-    "e2e": "ng e2e"
+    "e2e": "ng e2e",
+    "webdriver-update": "webdriver-manager update"
   },
   "private": true,
   "dependencies": {
