# Instructions

- Following Playwright test failed.
- Explain why, be concise, respect Playwright best practices.
- Provide a snippet of code with the fix, if possible.

# Test info

- Name: mfc-corporate-de.spec.ts >> blog >> post-menu-elements
- Location: visual/mfc-corporate-de.spec.ts:433:9

# Error details

```
Error: A snapshot doesn't exist at /Users/mfdrunner/builds/pDk_92X_S/0/mfc/corporate/typo3/playwright/visual/mfc-corporate-de.spec.ts-snapshots/blog-post-menu-elements-de-tablet-p-darwin.png, writing actual.
```

# Page snapshot

```yaml
- generic [ref=e2]:
  - link "Zum Inhalt springen" [ref=e3] [cursor=pointer]:
    - /url: "#page-content"
  - banner [ref=e4]:
    - generic [ref=e5]:
      - link "Marketing Factory Digital GmbH" [ref=e6] [cursor=pointer]:
        - /url: /
        - img "Marketing Factory Digital GmbH" [ref=e7]
      - link "Kontaktformular" [ref=e26] [cursor=pointer]:
        - /url: /formulare/kontaktformular/
      - button "Navigation" [expanded] [ref=e27] [cursor=pointer]
  - navigation "Brotkrumen-Navigation" [ref=e29]:
    - generic [ref=e30]:
      - paragraph [ref=e31]: "Sie sind here:"
      - list [ref=e32]:
        - listitem [ref=e33]:
          - link "Startseite" [ref=e34] [cursor=pointer]:
            - /url: /
            - img [ref=e35]
        - listitem [ref=e37]:
          - text: /
          - link "Blog" [ref=e38] [cursor=pointer]:
            - /url: /blog/
            - generic [ref=e39]: Blog
        - listitem [ref=e40]:
          - text: /
          - generic [ref=e41]: Mit Menü-Elementen
  - main [ref=e42]:
    - article [ref=e43]:
      - generic [ref=e45]:
        - generic [ref=e46]:
          - generic [ref=e47]:
            - figure [ref=e48]
            - list [ref=e53]:
              - listitem [ref=e54]:
                - link "Eis" [ref=e55] [cursor=pointer]:
                  - /url: /blog/kategorien/eis/
            - time [ref=e59]: 16.06.2023
            - heading "Mit Menü-Elementen" [level=1] [ref=e60]
          - separator [ref=e61]
          - generic [ref=e64]:
            - paragraph [ref=e65]: Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
            - paragraph [ref=e66]: Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
        - complementary [ref=e67]:
          - generic [ref=e69]:
            - generic [ref=e70]:
              - img [ref=e71]
              - generic [ref=e73]: Michael Mustermann
            - paragraph [ref=e74]:
              - link "Weitere Beiträge dieses Autors" [ref=e75] [cursor=pointer]:
                - /url: /blog/autoren/michael-mustermann/
            - list [ref=e77]:
              - listitem [ref=e78]:
                - link "Website dieses Autors" [ref=e79] [cursor=pointer]:
                  - /url: https://www.example.org
                  - img [ref=e80]
              - listitem [ref=e82]:
                - link "Der Autor auf Twitter" [ref=e83] [cursor=pointer]:
                  - /url: https://twitter.com/mustermann12
                  - img [ref=e84]
          - link "Blog als RSS-Feed abonnieren" [ref=e86] [cursor=pointer]:
            - /url: /blog/blog.recent.xml
            - img [ref=e87]
            - text: Blog als RSS-Feed abonnieren
          - generic [ref=e90]:
            - paragraph [ref=e92]: Ähnliche Beiträge
            - list [ref=e93]:
              - listitem [ref=e94]:
                - link "Drei Autoren, einer inaktiv" [ref=e95] [cursor=pointer]:
                  - /url: /blog/drei-autoren-einer-inaktiv/
              - listitem [ref=e96]:
                - link "Ohne Beitragsbild" [ref=e97] [cursor=pointer]:
                  - /url: /blog/ohne-beitragsbild/
          - generic [ref=e99]:
            - paragraph [ref=e101]: Themen-Seiten
            - list [ref=e102]:
              - listitem [ref=e103]:
                - link "Basics" [ref=e104] [cursor=pointer]:
                  - /url: /design-basiseigenschaften/
              - listitem [ref=e105]:
                - link "Card Group" [ref=e106] [cursor=pointer]:
                  - /url: /inhaltselemente/card-group/
              - listitem [ref=e107]:
                - link "RTE" [ref=e108] [cursor=pointer]:
                  - /url: /richtext-editor/
      - generic [ref=e109]:
        - paragraph [ref=e110]: Wir freuen uns, wenn Ihr diesen Beitrag teilt.
        - list [ref=e111]:
          - listitem [ref=e112]:
            - button "teilen" [ref=e113] [cursor=pointer]:
              - img [ref=e114]
              - generic [ref=e116]: teilen
          - listitem [ref=e117]:
            - button "teilen" [ref=e118] [cursor=pointer]:
              - img [ref=e119]
              - generic [ref=e121]: teilen
          - listitem [ref=e122]:
            - button "teilen" [ref=e123] [cursor=pointer]:
              - img [ref=e124]
              - generic [ref=e126]: teilen
  - generic [ref=e128]:
    - separator [ref=e129]
    - paragraph [ref=e130]: Kommentare
    - paragraph [ref=e131]: Keine Kommentare gefunden.
  - contentinfo [ref=e132]:
    - generic [ref=e136]:
      - paragraph [ref=e138]: Kommentar verfassen.
      - generic [ref=e140]:
        - generic [ref=e141]:
          - generic [ref=e142]: Name *
          - textbox "Name *" [ref=e143]
        - generic [ref=e144]:
          - generic [ref=e145]: E-Mail *
          - textbox "E-Mail *" [ref=e146]
        - generic [ref=e147]:
          - generic [ref=e148]: Kommentar *
          - textbox "Kommentar *" [ref=e149]
        - generic [ref=e150]:
          - generic [ref=e151]:
            - checkbox "Ich habe die Datenschutzerklärung gelesen und willige in die Verarbeitung meiner personenbezogenen Daten entsprechend dieser Erklärung ein. *" [ref=e152]
            - generic [ref=e153]:
              - text: Ich habe die
              - link "Datenschutzerklärung" [ref=e154] [cursor=pointer]:
                - /url: https://www.marketing-factory.de/datenschutzerklaerung/
              - text: gelesen und willige in die Verarbeitung meiner personenbezogenen Daten entsprechend dieser Erklärung ein. *
          - generic [ref=e155]:
            - paragraph [ref=e156]: Ich bin darauf hingewiesen worden, dass die Verarbeitung meiner Daten auf freiwilliger Basis erfolgt und dass ich mein Einverständnis ohne für mich nachteilige Folgen verweigern bzw. jederzeit gegenüber der Marketing Factory Digital GmbH per Post (Erkrather Straße 401, D-40231 Düsseldorf) oder E-Mail (info@marketing-factory.de) widerrufen kann.
            - paragraph [ref=e157]: Mir ist bekannt, dass die oben angegebenen Daten so lange gespeichert werden, wie ich die Kontaktaufnahme durch Marketing Factory wünsche. Nach meinem Widerruf werden meine Daten gelöscht. Eine weitergehende Speicherung kann im Einzelfall erfolgen, wenn dies gesetzlich vorgeschrieben ist.
        - navigation [ref=e158]:
          - button "Absenden" [ref=e159] [cursor=pointer]
    - generic [ref=e161]:
      - navigation [ref=e162]:
        - list [ref=e163]:
          - listitem [ref=e164]:
            - button "Cookie-Einstellungen" [ref=e165] [cursor=pointer]
          - listitem [ref=e166]:
            - link "Datenschutzerklärung" [ref=e167] [cursor=pointer]:
              - /url: https://www.marketing-factory.de/datenschutzerklaerung/
          - listitem [ref=e168]:
            - link "Impressum" [ref=e169] [cursor=pointer]:
              - /url: https://www.marketing-factory.de/impressum/
      - generic [ref=e170]:
        - paragraph [ref=e171]: © Marketing Factory Digital GmbH
        - paragraph [ref=e172]:
          - text: Alternativtexte für Bilder sind teilweise
          - link "KI-generiert" [ref=e173] [cursor=pointer]:
            - /url: https://www.marketing-factory.de/technologie/typo3/unsere-typo3-extensions/ai-filemetadata/
    - generic [ref=e176]:
      - strong [ref=e177]: Bildnachweise
      - list
```

# Test source

```ts
  335 |         await hideElements(page, PAGE_HEADER);
  336 |         await scrollToBottom(page);
  337 |         await expect(page).toHaveScreenshot(snap('content-textmedia-local-2-videos-beside-text'));
  338 |     });
  339 | 
  340 |     test('1-video-beside-text-centered-33-percent', async ({ page }) => {
  341 |         await setup(page, '/inhaltselemente/textmedia/videos-lokal-gehostet/1-video-neben-text-zentriert-33-bildbreite/');
  342 |         await hideElements(page, PAGE_HEADER);
  343 |         await scrollToBottom(page);
  344 |         await expect(page).toHaveScreenshot(snap('content-textmedia-local-1-video-beside-text-centered-33-percent'));
  345 |     });
  346 | 
  347 |     test('1-video-beside-text-33-percent', async ({ page }) => {
  348 |         await setup(page, '/inhaltselemente/textmedia/videos-lokal-gehostet/1-video-neben-text-33-bildbreite/');
  349 |         await hideElements(page, PAGE_HEADER);
  350 |         await scrollToBottom(page);
  351 |         await expect(page).toHaveScreenshot(snap('content-textmedia-local-1-video-beside-text-33-percent'));
  352 |     });
  353 | });
  354 | 
  355 | test.describe('page-types', () => {
  356 |     test('search', async ({ page }) => {
  357 |         await setup(page, '/seitentypen/suche/?tx_solr%5Bq%5D=obermeyer');
  358 |         await expect(page).toHaveScreenshot(snap('page-type-search'));
  359 |     });
  360 | 
  361 |     test('client-list', async ({ page }) => {
  362 |         await setup(page, '/seitentypen/kunden-listenansicht/');
  363 |         await expect(page).toHaveScreenshot(snap('page-type-client-list'));
  364 |     });
  365 | 
  366 |     test('client-pfm', async ({ page }) => {
  367 |         await setup(page, '/seitentypen/kunden-listenansicht/pfm-medical-sg/');
  368 |         await expect(page).toHaveScreenshot(snap('page-type-client-pfm'));
  369 |     });
  370 | });
  371 | 
  372 | test.describe('plugins', () => {
  373 |     test('project-list', async ({ page }) => {
  374 |         await setup(page, '/plugins/projekt-liste/');
  375 |         await expect(page).toHaveScreenshot(snap('plugin-project-list'));
  376 |     });
  377 | 
  378 |     test('project-obermeyer-corporate', async ({ page }) => {
  379 |         await setup(page, '/seitentypen/kunden-listenansicht/obermeyer-sg/launch-der-neuen-corporate-site-der-unternehmensgruppe-obermeyer-sg/');
  380 |         await hideElements(page, PAGE_HEADER);
  381 |         await scrollToBottom(page);
  382 |         await expect(page).toHaveScreenshot(snap('plugin-project-obermeyer-corporate'));
  383 |     });
  384 | 
  385 |     test('picturecredits', async ({ page }) => {
  386 |         await setup(page, '/plugins/picturecredits/');
  387 |         await expect(page).toHaveScreenshot(snap('plugin-picturecredits'));
  388 |     });
  389 | });
  390 | 
  391 | test.describe('blog', () => {
  392 |     test('overview', async ({ page }) => {
  393 |         await setup(page, '/blog/');
  394 |         await hideElements(page, PAGE_HEADER);
  395 |         await scrollToBottom(page);
  396 |         await expect(page).toHaveScreenshot(snap('blog-overview'));
  397 |         await setDarkTheme(page);
  398 |         await expect(page).toHaveScreenshot(snap('blog-overview-dark'));
  399 |     });
  400 | 
  401 |     test('list-authors', async ({ page }) => {
  402 |         await setup(page, '/blog/autoren/');
  403 |         await expect(page).toHaveScreenshot(snap('blog-list-authors'));
  404 |     });
  405 | 
  406 |     test('author', async ({ page }) => {
  407 |         await setup(page, '/blog/autoren/max-powers/');
  408 |         await expect(page).toHaveScreenshot(snap('blog-author'));
  409 |     });
  410 | 
  411 |     test('list-categories', async ({ page }) => {
  412 |         await setup(page, '/blog/kategorien/');
  413 |         await expect(page).toHaveScreenshot(snap('blog-list-categories'));
  414 |     });
  415 | 
  416 |     test('category', async ({ page }) => {
  417 |         await setup(page, '/blog/kategorien/schokolade/');
  418 |         await hideElements(page, PAGE_HEADER);
  419 |         await scrollToBottom(page);
  420 |         await expect(page).toHaveScreenshot(snap('blog-category'));
  421 |     });
  422 | 
  423 |     test('list-blogseries', async ({ page }) => {
  424 |         await setup(page, '/blog/blogreihen/');
  425 |         await expect(page).toHaveScreenshot(snap('blog-list-blogseries'));
  426 |     });
  427 | 
  428 |     test('blogseries', async ({ page }) => {
  429 |         await setup(page, '/blog/blogreihen/styleguide-highlights/');
  430 |         await expect(page).toHaveScreenshot(snap('blog-blogseries'));
  431 |     });
  432 | 
  433 |     test('post-menu-elements', async ({ page }) => {
  434 |         await setup(page, '/blog/mit-menue-elementen/');
> 435 |         await expect(page).toHaveScreenshot(snap('blog-post-menu-elements'));
      |         ^ Error: A snapshot doesn't exist at /Users/mfdrunner/builds/pDk_92X_S/0/mfc/corporate/typo3/playwright/visual/mfc-corporate-de.spec.ts-snapshots/blog-post-menu-elements-de-tablet-p-darwin.png, writing actual.
  436 |     });
  437 | 
  438 |     test('post-blogseries', async ({ page }) => {
  439 |         await setup(page, '/blog/erster-teil-einer-serie/');
  440 |         await expect(page).toHaveScreenshot(snap('blog-post-blogseries'));
  441 |     });
  442 | 
  443 |     test('post-no-featured-image', async ({ page }) => {
  444 |         await setup(page, '/blog/ohne-beitragsbild/');
  445 |         await expect(page).toHaveScreenshot(snap('blog-post-no-featured-image'));
  446 |     });
  447 | 
  448 |     test('post-with-comments', async ({ page }) => {
  449 |         await setup(page, '/blog/mit-kommentaren/');
  450 |         await expect(page).toHaveScreenshot(snap('blog-post-with-comments'));
  451 |     });
  452 | 
  453 |     test('post-inactive-author', async ({ page }) => {
  454 |         await setup(page, '/blog/drei-autoren-einer-inaktiv/');
  455 |         await expect(page).toHaveScreenshot(snap('blog-post-inactive-author'));
  456 |     });
  457 | 
  458 |     test('post-localized-featured-image', async ({ page }) => {
  459 |         await setup(page, '/blog/uebersetztes-featured-image/');
  460 |         await expect(page).toHaveScreenshot(snap('blog-post-localized-featured-image'));
  461 |     });
  462 | });
  463 | 
  464 | test.describe('forms', () => {
  465 |     test('contact', async ({ page }) => {
  466 |         await setup(page, '/formulare/kontaktformular/');
  467 |         await expect(page).toHaveScreenshot(snap('forms-contact'));
  468 |         await setDarkTheme(page);
  469 |         await expect(page).toHaveScreenshot(snap('forms-contact-dark'));
  470 |     });
  471 | 
  472 |     test('footer', async ({ page }) => {
  473 |         await setup(page, '/formulare/footer-formular/');
  474 |         await expect(page).toHaveScreenshot(snap('forms-footer'));
  475 |     });
  476 | 
  477 |     test('example', async ({ page }) => {
  478 |         await setup(page, '/formulare/styleguide-testformular/');
  479 |         await expect(page).toHaveScreenshot(snap('forms-example'));
  480 |         await setDarkTheme(page);
  481 |         await expect(page).toHaveScreenshot(snap('forms-example-dark'));
  482 |     });
  483 | });
  484 | 
```