diff --git a/alfa-client/apps/admin-e2e/src/support/angular.util.ts b/alfa-client/apps/admin-e2e/src/support/angular.util.ts
index 7dbeb3b9cc5ff07185971dacf56729a404222d2c..8345e751b5781769282164d36aa7fb6b0bd4636d 100644
--- a/alfa-client/apps/admin-e2e/src/support/angular.util.ts
+++ b/alfa-client/apps/admin-e2e/src/support/angular.util.ts
@@ -39,8 +39,7 @@ enum AngularElementE2E {
 
 export function hasTooltip(element: any, value: string) {
   mouseEnter(element);
-  element.get('mat-tooltip-component').contains(value);
-  // element.get(`div[title="${value}"]`);
+  element.get('ods-tooltip').contains(value);
 }
 
 export function isChecked(element: any) {
diff --git a/alfa-client/apps/alfa-e2e/src/components/user-profile/current-user-profile.component.e2e.ts b/alfa-client/apps/alfa-e2e/src/components/user-profile/current-user-profile.component.e2e.ts
index 202c5d3ef538a45931d9dc855e1ad99dba5610fd..93a38796fd04ecade67ecf9995a417a73ce687ba 100644
--- a/alfa-client/apps/alfa-e2e/src/components/user-profile/current-user-profile.component.e2e.ts
+++ b/alfa-client/apps/alfa-e2e/src/components/user-profile/current-user-profile.component.e2e.ts
@@ -40,7 +40,7 @@ export class CurrentUserProfileE2EComponent {
 
   public logout(): void {
     this.getUserIconButton().click();
-    this.getLogoutButton().click();
+    this.getLogoutButton().click({ force: true });
   }
 
   public getUserIconButton() {
diff --git a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/init-users.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/init-users.cy.ts
index b5325689ff01c2b61199ae06ef1e07ebc483a5b1..0558e553cf1915d2e288b730be3b06d6adbf4a61 100644
--- a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/init-users.cy.ts
+++ b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/init-users.cy.ts
@@ -68,6 +68,6 @@ describe('Init users', () => {
     waitForSpinnerToDisappear();
     exist(header.getLogo());
     header.getCurrentUserProfile().getUserIconButton().click();
-    header.getCurrentUserProfile().getLogoutButton().click();
+    header.getCurrentUserProfile().getLogoutButton().click({ force: true });
   }
 });
diff --git a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-detailansicht.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-detailansicht.cy.ts
index ac09ea4046a74327aaa0e0460b1cd89afd6af003..7fa1b271ad7f923a8757a96e1e73854837fe101c 100644
--- a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-detailansicht.cy.ts
+++ b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-detailansicht.cy.ts
@@ -37,18 +37,13 @@ import {
   contains,
   exist,
   haveText,
+  haveTextWithoutChildren,
   shouldFirstContains,
   shouldHaveAttributeBeGreaterThan,
   shouldHaveAttributeBeLowerThan,
 } from '../../../support/cypress.util';
 import { loginAsSabine } from '../../../support/user-util';
-import {
-  AntragstellerE2ETestData,
-  buildVorgang,
-  createVorgang,
-  initVorgaenge,
-  objectIds,
-} from '../../../support/vorgang-util';
+import { AntragstellerE2ETestData, buildVorgang, createVorgang, initVorgaenge, objectIds } from '../../../support/vorgang-util';
 
 registerLocaleData(localeDe, 'de', localeDeExtra);
 
@@ -57,13 +52,10 @@ describe('Vorgang Detailansicht', () => {
   const vorgangList: VorgangListE2EComponent = mainPage.getVorgangList();
 
   const vorgangPage: VorgangPage = new VorgangPage();
-  const vorgangDatenFormular: VorgangFormularDatenE2EComponent =
-    vorgangPage.getFormularDatenContainer();
+  const vorgangDatenFormular: VorgangFormularDatenE2EComponent = vorgangPage.getFormularDatenContainer();
 
   const vorgangHeader: VorgangDetailHeaderE2EComponent = vorgangPage.getVorgangDetailHeader();
-  const expansionPanelContainer: ExpansionPanelE2Eomponent = vorgangPage
-    .getFormularDatenContainer()
-    .getExpansionPanelContainer();
+  const expansionPanelContainer: ExpansionPanelE2Eomponent = vorgangPage.getFormularDatenContainer().getExpansionPanelContainer();
   const antragsteller: AntragstellerE2EComponent = vorgangPage.getAntragstellerContainer();
 
   const vorgang: VorgangE2E = { ...createVorgang(), name: 'TestVorgang' };
@@ -97,16 +89,10 @@ describe('Vorgang Detailansicht', () => {
 
       it('should have header data', () => {
         haveText(vorgangHeader.getStatus(), vorgangStatusLabelE2E[vorgang.status]);
-        haveText(
-          vorgangHeader.getAktenzeichen(),
-          vorgang.aktenzeichen ? vorgang.aktenzeichen : NO_AKTENZEICHEN,
-        );
-        haveText(vorgangHeader.getVorgangNummer(), vorgang.nummer);
+        haveTextWithoutChildren(vorgangHeader.getAktenzeichen(), vorgang.aktenzeichen ? vorgang.aktenzeichen : NO_AKTENZEICHEN);
+        haveTextWithoutChildren(vorgangHeader.getVorgangNummer(), vorgang.nummer);
         haveText(vorgangHeader.getName(), vorgang.name);
-        haveText(
-          vorgangHeader.getCreatedAt(),
-          formatDate(vorgang.createdAt.$date, 'EEEE, dd. MMMM y, HH:mm', 'de'),
-        );
+        haveText(vorgangHeader.getCreatedAt(), formatDate(vorgang.createdAt.$date, 'EEEE, dd. MMMM y, HH:mm', 'de'));
       });
 
       it('should have header data after reload', () => {
@@ -114,16 +100,10 @@ describe('Vorgang Detailansicht', () => {
 
         exist(vorgangHeader.getRoot());
         haveText(vorgangHeader.getStatus(), vorgangStatusLabelE2E[vorgang.status]);
-        haveText(
-          vorgangHeader.getAktenzeichen(),
-          vorgang.aktenzeichen ? vorgang.aktenzeichen : NO_AKTENZEICHEN,
-        );
-        haveText(vorgangHeader.getVorgangNummer(), vorgang.nummer);
+        haveTextWithoutChildren(vorgangHeader.getAktenzeichen(), vorgang.aktenzeichen ? vorgang.aktenzeichen : NO_AKTENZEICHEN);
+        haveTextWithoutChildren(vorgangHeader.getVorgangNummer(), vorgang.nummer);
         haveText(vorgangHeader.getName(), vorgang.name);
-        haveText(
-          vorgangHeader.getCreatedAt(),
-          formatDate(vorgang.createdAt.$date, 'EEEE, dd. MMMM y, HH:mm', 'de'),
-        );
+        haveText(vorgangHeader.getCreatedAt(), formatDate(vorgang.createdAt.$date, 'EEEE, dd. MMMM y, HH:mm', 'de'));
       });
     });
 
@@ -136,10 +116,7 @@ describe('Vorgang Detailansicht', () => {
       });
 
       it('should show "empfangendestelle"', () => {
-        contains(
-          vorgangDatenFormular.getRoot(),
-          vorgang.eingangs[0].formData.empfangendestelle.emailadresse,
-        );
+        contains(vorgangDatenFormular.getRoot(), vorgang.eingangs[0].formData.empfangendestelle.emailadresse);
       });
     });
 
@@ -174,21 +151,13 @@ describe('Vorgang Detailansicht', () => {
       });
 
       it('should have Formulardaten panel open initial', () => {
-        shouldHaveAttributeBeGreaterThan(
-          expansionPanelContainer.getExpansionPanel(),
-          'outerHeight',
-          50,
-        );
+        shouldHaveAttributeBeGreaterThan(expansionPanelContainer.getExpansionPanel(), 'outerHeight', 50);
       });
 
       it('should close the panel', () => {
         expansionPanelContainer.getExpansionPanelTitle().first().click();
 
-        shouldHaveAttributeBeLowerThan(
-          expansionPanelContainer.getExpansionPanel(),
-          'outerHeight',
-          50,
-        );
+        shouldHaveAttributeBeLowerThan(expansionPanelContainer.getExpansionPanel(), 'outerHeight', 50);
       });
     });
   });
diff --git a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-xdomea/vorgang-archivieren.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-xdomea/vorgang-archivieren.cy.ts
index a2a5a7c8b38cdfe441ad42110c91d5a14effbc4f..dcbef54206c964966a49dc51cefa33c405c633ec 100644
--- a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-xdomea/vorgang-archivieren.cy.ts
+++ b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-xdomea/vorgang-archivieren.cy.ts
@@ -88,6 +88,7 @@ describe('Vorgang archivieren', () => {
     });
 
     it('should open popup again and archive Vorgang on confirmation', () => {
+      vorgangMoreMenu.getButton().click();
       archivierenItem.clickArchivieren();
       archivierenItem.confirmArchivieren();
 
diff --git a/alfa-client/apps/alfa-e2e/src/support/angular.util.ts b/alfa-client/apps/alfa-e2e/src/support/angular.util.ts
index 4f8427775eba70bc3c69837580ff307ecdc2fded..a8929a5a22b1fc8073e1717241b8e7141a20ee99 100644
--- a/alfa-client/apps/alfa-e2e/src/support/angular.util.ts
+++ b/alfa-client/apps/alfa-e2e/src/support/angular.util.ts
@@ -40,8 +40,7 @@ enum AngularElementE2E {
 
 export function hasTooltip(element: any, value: string) {
   mouseEnter(element);
-  element.get('mat-tooltip-component').contains(value);
-  // element.get(`div[title="${value}"]`);
+  element.get('ods-tooltip').contains(value);
 }
 
 export function isChecked(element: any) {
diff --git a/alfa-client/apps/alfa-e2e/src/support/cypress.util.ts b/alfa-client/apps/alfa-e2e/src/support/cypress.util.ts
index ce27ac7e46551eb1cebe36055894341e23ae6106..69e7bccdfc44a17993598e6c49a8e81bd066db33 100644
--- a/alfa-client/apps/alfa-e2e/src/support/cypress.util.ts
+++ b/alfa-client/apps/alfa-e2e/src/support/cypress.util.ts
@@ -52,6 +52,16 @@ export function haveText(element: any, text: string): void {
     .should('equal', text);
 }
 
+export function haveTextWithoutChildren(element: any, text: string): void {
+  element
+    .invoke('clone')
+    .then((element) => {
+      element.children().remove();
+      return element.text().trim();
+    })
+    .should('equal', text);
+}
+
 export function haveValue(element: any, value: string): void {
   element.should('have.value', value);
 }
@@ -93,11 +103,7 @@ export function shouldFirstContains(element: any, containing: string) {
   element.first().should('exist').contains(containing);
 }
 
-export function shouldHaveAttributeBeGreaterThan(
-  element: any,
-  attributeName: string,
-  value: number,
-) {
+export function shouldHaveAttributeBeGreaterThan(element: any, attributeName: string, value: number) {
   element.first().should('exist').invoke(attributeName).should('be.gt', value);
 }
 
@@ -122,11 +128,7 @@ export function enter(element: any): void {
   element.clear().type(CypressKeyboardActions.ENTER);
 }
 
-export function enterWith(
-  element: Cypress.Chainable<JQuery<HTMLElement>>,
-  value: string,
-  delayBeforeEnter: number = 200,
-): void {
+export function enterWith(element: Cypress.Chainable<JQuery<HTMLElement>>, value: string, delayBeforeEnter: number = 200): void {
   element.clear().type(value);
   wait(delayBeforeEnter);
   element.type(CypressKeyboardActions.ENTER);
diff --git a/alfa-client/libs/design-system/src/lib/dropdown-menu/dropdown-menu-button-item/dropdown-menu-button-item.component.ts b/alfa-client/libs/design-system/src/lib/dropdown-menu/dropdown-menu-button-item/dropdown-menu-button-item.component.ts
index 90badf1ab01696f8203a8af8caee1af377c9cbae..842ff45f4505e999956906e19075ad03fc0edcbc 100644
--- a/alfa-client/libs/design-system/src/lib/dropdown-menu/dropdown-menu-button-item/dropdown-menu-button-item.component.ts
+++ b/alfa-client/libs/design-system/src/lib/dropdown-menu/dropdown-menu-button-item/dropdown-menu-button-item.component.ts
@@ -32,6 +32,7 @@ import { Component, EventEmitter, Input, Output } from '@angular/core';
     class="flex min-h-12 w-full items-center gap-4 border-2 border-transparent px-4 py-3 text-start outline-none hover:border-primary focus-visible:border-focus"
     role="menuitem"
     (click)="itemClicked.emit()"
+    [attr.data-test-id]="buttonTestId"
   >
     <ng-content select="[icon]" />
     <p class="text-text">{{ caption }}</p>
@@ -39,6 +40,7 @@ import { Component, EventEmitter, Input, Output } from '@angular/core';
 })
 export class DropdownMenuButtonItemComponent {
   @Input({ required: true }) caption!: string;
+  @Input() buttonTestId: string;
 
   @Output() itemClicked: EventEmitter<MouseEvent> = new EventEmitter();
 }
diff --git a/alfa-client/libs/user-profile/src/lib/user-profile-in-header-container/user-profile-in-header/user-profile-in-header.component.html b/alfa-client/libs/user-profile/src/lib/user-profile-in-header-container/user-profile-in-header/user-profile-in-header.component.html
index 8808114310f78fe0a7addeb9417dc889456a6e21..c73890ac91f82dd5182190f913829129deb67bad 100644
--- a/alfa-client/libs/user-profile/src/lib/user-profile-in-header-container/user-profile-in-header/user-profile-in-header.component.html
+++ b/alfa-client/libs/user-profile/src/lib/user-profile-in-header-container/user-profile-in-header/user-profile-in-header.component.html
@@ -26,16 +26,17 @@
 <ods-dropdown-menu
   buttonClass="rounded-full p-1 hover:bg-neutral-100 focus:bg-neutral-200 focus:outline-none dark:hover:bg-neutral-700 dark:focus:bg-neutral-600"
   [label]="buttonLabel"
+  buttonTestId="user-icon-button"
   data-test-id="user-icon-dropdown-menu"
 >
   <alfa-user-icon
     button-content
-    data-test-id="user-icon-button"
+    data-test-id="user-icon"
     [userProfileStateResource]="currentUserResource"
     class="user-profile-icon"
   >
   </alfa-user-icon>
-  <ods-dropdown-menu-button-item caption="Abmelden" (itemClicked)="logoutEmitter.emit()" data-test-id="logout-button">
+  <ods-dropdown-menu-button-item caption="Abmelden" (itemClicked)="logoutEmitter.emit()" buttonTestId="logout-button">
     <ods-logout-icon icon />
   </ods-dropdown-menu-button-item>
 </ods-dropdown-menu>