diff --git a/cypress/e2e/widgets.cy.js b/cypress/e2e/widgets.cy.js
index a39ea85e1d..88e19030c1 100644
--- a/cypress/e2e/widgets.cy.js
+++ b/cypress/e2e/widgets.cy.js
@@ -19,26 +19,26 @@ describe('After user signed in', () => {
 	});
 
   it('widget edit toggle is visible', () => {
-		cy.get('.mk-widget-edit').should('be.visible');
+		cy.get('[data-cy-widget-edit]').should('be.visible');
   });
 
 	it('widget select should be visible in edit mode', () => {
-		cy.get('.mk-widget-edit').click();
-		cy.get('.mk-widget-select').should('be.visible');
+		cy.get('[data-cy-widget-edit]').click();
+		cy.get('[data-cy-widget-select]').should('be.visible');
   });
 
 	it('first widget should be removed', () => {
-		cy.get('.mk-widget-edit').click();
+		cy.get('[data-cy-widget-edit]').click();
 		cy.get('[data-cy-customize-container]:first-child [data-cy-customize-container-remove]._button').click();
 		cy.get('[data-cy-customize-container]').should('have.length', 2);
 	});
 
 	function buildWidgetTest(widgetName) {
 		it(`${widgetName} widget should get added`, () => {
-			cy.get('.mk-widget-edit').click();
-			cy.get('.mk-widget-select select').select(widgetName, { force: true });
+			cy.get('[data-cy-widget-edit]').click();
+			cy.get('[data-cy-widget-select] select').select(widgetName, { force: true });
 			cy.get('[data-cy-bg]._modalBg[data-cy-transparent]').click({ multiple: true, force: true });
-			cy.get('.mk-widget-add').click({ force: true });
+			cy.get('[data-cy-widget-add]').click({ force: true });
 			cy.get(`[data-cy-mkw-${widgetName}]`).should('exist');
 		});
 	}
diff --git a/packages/frontend/src/components/MkWidgets.vue b/packages/frontend/src/components/MkWidgets.vue
index d074fdd150..33e594acd8 100644
--- a/packages/frontend/src/components/MkWidgets.vue
+++ b/packages/frontend/src/components/MkWidgets.vue
@@ -2,11 +2,11 @@
 <div :class="$style.root">
 	<template v-if="edit">
 		<header :class="$style['edit-header']">
-			<MkSelect v-model="widgetAdderSelected" style="margin-bottom: var(--margin)" class="mk-widget-select">
+			<MkSelect v-model="widgetAdderSelected" style="margin-bottom: var(--margin)" data-cy-widget-select>
 				<template #label>{{ i18n.ts.selectWidget }}</template>
 				<option v-for="widget in widgetDefs" :key="widget" :value="widget">{{ i18n.t(`_widgets.${widget}`) }}</option>
 			</MkSelect>
-			<MkButton inline primary class="mk-widget-add" @click="addWidget"><i class="ti ti-plus"></i> {{ i18n.ts.add }}</MkButton>
+			<MkButton inline primary data-cy-widget-add @click="addWidget"><i class="ti ti-plus"></i> {{ i18n.ts.add }}</MkButton>
 			<MkButton inline @click="$emit('exit')">{{ i18n.ts.close }}</MkButton>
 		</header>
 		<Sortable
diff --git a/packages/frontend/src/ui/universal.widgets.vue b/packages/frontend/src/ui/universal.widgets.vue
index d11649c603..3e0c38bb83 100644
--- a/packages/frontend/src/ui/universal.widgets.vue
+++ b/packages/frontend/src/ui/universal.widgets.vue
@@ -3,7 +3,7 @@
 	<XWidgets :class="$style.widgets" :edit="editMode" :widgets="widgets" @add-widget="addWidget" @remove-widget="removeWidget" @update-widget="updateWidget" @update-widgets="updateWidgets" @exit="editMode = false"/>
 
 	<button v-if="editMode" class="_textButton" style="font-size: 0.9em;" @click="editMode = false"><i class="ti ti-check"></i> {{ i18n.ts.editWidgetsExit }}</button>
-	<button v-else class="_textButton mk-widget-edit" :class="$style.edit" style="font-size: 0.9em;" @click="editMode = true"><i class="ti ti-pencil"></i> {{ i18n.ts.editWidgets }}</button>
+	<button v-else class="_textButton" data-cy-widget-edit :class="$style.edit" style="font-size: 0.9em;" @click="editMode = true"><i class="ti ti-pencil"></i> {{ i18n.ts.editWidgets }}</button>
 </div>
 </template>