# 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 >> overview
- Location: visual/mfc-corporate-de.spec.ts:247:9

# Error details

```
Error: expect(page).toHaveScreenshot(expected) failed

  Expected an image 1288px by 2741px, received 1288px by 2613px. 

  Snapshot: blog-overview.png

Call log:
  - Expect "toHaveScreenshot(blog-overview.png)" with timeout 15000ms
    - verifying given screenshot expectation
  - taking page screenshot
    - disabled all CSS animations
  - waiting for fonts to load...
  - fonts loaded
  - Expected an image 1288px by 2741px, received 1288px by 2613px.
  - waiting 100ms before taking screenshot
  - taking page screenshot
    - disabled all CSS animations
  - waiting for fonts to load...
  - fonts loaded
  - captured a stable screenshot
  - Expected an image 1288px by 2741px, received 1288px by 2613px.

```

# Page snapshot

```yaml
- generic [ref=e2]:
  - link "Zum Inhalt springen" [ref=e3] [cursor=pointer]:
    - /url: "#page-content"
  - banner [ref=e4]:
    - generic [ref=e5]:
      - link "Zur Startseite":
        - /url: /
      - generic [ref=e6]:
        - link "Logo Marketing Factory Digital GmbH" [ref=e7] [cursor=pointer]:
          - /url: /
          - img "Logo Marketing Factory Digital GmbH" [ref=e8]
        - navigation [ref=e27]:
          - list [ref=e28]:
            - listitem [ref=e29]:
              - link "Basics" [ref=e30] [cursor=pointer]:
                - /url: /design-basiseigenschaften/
            - listitem [ref=e31]:
              - link "Einblendmenü umschalten mit Leertaste" [ref=e32] [cursor=pointer]:
                - /url: /inhaltselemente/
                - text: Inhaltselemente
            - listitem [ref=e33]:
              - link "Einblendmenü umschalten mit Leertaste" [ref=e34] [cursor=pointer]:
                - /url: /richtext-editor/
                - text: RTE
            - listitem [ref=e35]:
              - link "Einblendmenü umschalten mit Leertaste" [ref=e36] [cursor=pointer]:
                - /url: /seitentypen/
                - text: Seitentypen
            - listitem [ref=e37]:
              - link "Einblendmenü umschalten mit Leertaste" [ref=e38] [cursor=pointer]:
                - /url: /plugins/
                - text: Plugins
            - listitem [ref=e39]:
              - link "Blog (aktuell)" [ref=e40] [cursor=pointer]:
                - /url: /blog/
                - text: Blog
                - generic [ref=e41]: (aktuell)
            - listitem [ref=e42]:
              - link "Einblendmenü umschalten mit Leertaste" [ref=e43] [cursor=pointer]:
                - /url: /formulare/
                - text: Formulare
        - generic [ref=e45]:
          - button "Suche einblenden" [ref=e47] [cursor=pointer]
          - button "Farbschema wechseln" [ref=e51] [cursor=pointer]
          - list "Sprache der Website" [ref=e54]:
            - listitem [ref=e55]:
              - link "Deutsch" [ref=e56] [cursor=pointer]:
                - /url: /blog/
                - text: De
            - listitem [ref=e57]:
              - link "English" [ref=e58] [cursor=pointer]:
                - /url: https://www.marketing-factory.com.styleguide.renovate-develop-frontend-runtime-dependencies.review.mfc.gmbh/blog/
                - text: En
  - navigation "Brotkrumen-Navigation" [ref=e59]:
    - generic [ref=e60]:
      - paragraph [ref=e61]: "Sie sind here:"
      - list [ref=e62]:
        - listitem [ref=e63]:
          - link "Startseite" [ref=e64] [cursor=pointer]:
            - /url: /
        - listitem [ref=e67]:
          - text: /
          - generic [ref=e68]: Blog
  - main [ref=e69]:
    - generic [ref=e70]:
      - generic [ref=e71]: Suche nach Blogbeiträgen
      - textbox "Suchbegriff" [ref=e72]:
        - /placeholder: Blogbeiträge durchsuchen
      - button "Suchergebnisse anzeigen" [ref=e73] [cursor=pointer]
    - generic [ref=e77]:
      - generic [ref=e80]:
        - link "Blog als RSS-Feed abonnieren" [ref=e81] [cursor=pointer]:
          - /url: /blog/blog.recent.xml
        - generic [ref=e84]:
          - paragraph [ref=e85]: Kategorien
          - link "Kategorie-Liste überspringen" [ref=e86] [cursor=pointer]:
            - /url: "#endOfCategoryList"
          - navigation [ref=e87]:
            - list [ref=e88]:
              - listitem [ref=e89]:
                - link "Schokolade" [ref=e90] [cursor=pointer]:
                  - /url: /blog/kategorien/schokolade/
              - listitem [ref=e91]:
                - link "Kekse" [ref=e92] [cursor=pointer]:
                  - /url: /blog/kategorien/kekse/
              - listitem [ref=e93]:
                - link "Eis" [ref=e94] [cursor=pointer]:
                  - /url: /blog/kategorien/eis/
        - generic [ref=e95]:
          - paragraph [ref=e96]: Blogreihen
          - link "Blogreihen-Liste überspringen" [ref=e97] [cursor=pointer]:
            - /url: "#endOfBlogSeriesList"
          - navigation [ref=e98]:
            - list [ref=e99]:
              - listitem [ref=e100]:
                - link "Sprach-Handling-Test" [ref=e101] [cursor=pointer]:
                  - /url: /blog/blogreihen/sprach-handling-test/
              - listitem [ref=e102]:
                - link "Styleguide-Highlights!" [ref=e103] [cursor=pointer]:
                  - /url: /blog/blogreihen/styleguide-highlights/
        - generic [ref=e104]:
          - paragraph [ref=e105]: Autoren
          - link "Autoren-Liste überspringen" [ref=e106] [cursor=pointer]:
            - /url: "#endOfAuthorList"
          - navigation [ref=e107]:
            - list [ref=e108]:
              - listitem [ref=e109]:
                - link [ref=e110] [cursor=pointer]:
                  - /url: /blog/autoren/john-doe/
              - listitem [ref=e111]:
                - link [ref=e112] [cursor=pointer]:
                  - /url: /blog/autoren/max-powers/
              - listitem [ref=e113]:
                - link [ref=e114] [cursor=pointer]:
                  - /url: /blog/autoren/michael-mustermann/
      - generic [ref=e119]:
        - generic [ref=e120]:
          - article [ref=e122]:
            - figure [ref=e124]
            - generic [ref=e125]:
              - paragraph [ref=e126]:
                - link "Übersetztes Featured Image" [ref=e127] [cursor=pointer]:
                  - /url: /blog/uebersetztes-featured-image/
              - paragraph [ref=e128]: Das Featured Image unterscheidet sich in deutschem und englischem Beitrag (Listen- und Detailansicht).
              - text: Beitrag lesen
            - generic [ref=e129]:
              - time [ref=e130]: 24.07.2023
              - generic [ref=e131]: Michael Mustermann
          - article [ref=e136]:
            - figure [ref=e138]
            - generic [ref=e139]:
              - paragraph [ref=e140]:
                - link "Mit Menü-Elementen" [ref=e141] [cursor=pointer]:
                  - /url: /blog/mit-menue-elementen/
              - paragraph [ref=e142]: Manuell gesetzte Verlinkungen auf thematisch passende Blogbeiträge und Themen-Seiten.
              - text: Beitrag lesen
            - generic [ref=e143]:
              - time [ref=e144]: 16.06.2023
              - generic [ref=e145]: Michael Mustermann
          - article [ref=e150]:
            - figure [ref=e152]
            - generic [ref=e153]:
              - paragraph [ref=e154]:
                - link "Dritter Teil einer Serie" [ref=e155] [cursor=pointer]:
                  - /url: /blog/dritter-teil-einer-serie/
              - paragraph [ref=e156]: Hier wird automatisch das Menü der Blogreihe in der rechten Spalte ausgegeben.
              - text: Beitrag lesen
            - generic [ref=e157]:
              - time [ref=e158]: 16.06.2023
              - generic [ref=e159]:
                - generic [ref=e160]: Max Powers
                - img "Max Powers" [ref=e161]
          - article [ref=e163]:
            - figure [ref=e165]
            - generic [ref=e166]:
              - paragraph [ref=e167]:
                - link "Zweiter Teil einer Serie" [ref=e168] [cursor=pointer]:
                  - /url: /blog/zweiter-teil-einer-serie/
              - paragraph [ref=e169]: SEO-Beschreibung und Teaser-Text fehlen, daher wird der vorhandene Blogtext in der Card gerendert. Lorem ipsum dolor...
              - text: Beitrag lesen
            - generic [ref=e170]:
              - time [ref=e171]: 18.04.2023
              - generic [ref=e172]:
                - generic [ref=e173]: Max Powers
                - img "Max Powers" [ref=e174]
          - article [ref=e176]:
            - figure [ref=e178]
            - generic [ref=e179]:
              - paragraph [ref=e180]:
                - link "Erster Teil einer Serie" [ref=e181] [cursor=pointer]:
                  - /url: /blog/erster-teil-einer-serie/
              - paragraph [ref=e182]: Hier wird automatisch das Menü der Blogreihe in der rechten Spalte ausgegeben.
              - text: Beitrag lesen
            - generic [ref=e183]:
              - time [ref=e184]: 15.02.2023
              - generic [ref=e185]:
                - generic [ref=e186]: Max Powers
                - img "Max Powers" [ref=e187]
          - article [ref=e189]:
            - generic [ref=e194]:
              - paragraph [ref=e195]:
                - link "Ohne Beitragsbild" [ref=e196] [cursor=pointer]:
                  - /url: /blog/ohne-beitragsbild/
              - paragraph [ref=e197]: Ein Font-Awesome-Icon mit Hintergrundverlauf wird als Fallback verwendet.
              - text: Beitrag lesen
            - generic [ref=e198]:
              - time [ref=e199]: 06.12.2022
              - generic [ref=e200]: Michael Mustermann
          - article [ref=e205]:
            - figure [ref=e207]
            - generic [ref=e208]:
              - paragraph [ref=e209]:
                - link "Mit Kommentaren" [ref=e210] [cursor=pointer]:
                  - /url: /blog/mit-kommentaren/
              - paragraph [ref=e211]: Blog-Kommentare, auch verschachtelt. Keine Unterscheidung nach Frontend-Sprache!
              - text: Beitrag lesen
            - generic [ref=e212]:
              - time [ref=e213]: 15.06.2022
              - generic [ref=e214]:
                - generic [ref=e215]: John Doe
                - img "John Doe" [ref=e216]
          - article [ref=e218]:
            - figure [ref=e220]
            - generic [ref=e221]:
              - paragraph [ref=e222]:
                - link "Drei Autoren, einer inaktiv" [ref=e223] [cursor=pointer]:
                  - /url: /blog/drei-autoren-einer-inaktiv/
              - paragraph [ref=e224]: Der inaktive (ehemalige) Autor wird am Ende der Autorenbox einsortiert und ist kein Accordion-Element.
              - text: Beitrag lesen
            - generic [ref=e225]:
              - time [ref=e226]: 09.03.2022
              - list [ref=e227]:
                - listitem [ref=e228]:
                  - generic [ref=e229]: Michael Mustermann
                - listitem [ref=e233]:
                  - generic [ref=e234]:
                    - generic [ref=e235]: Ehemaliger Kollege
                    - img "Ehemaliger Kollege" [ref=e236]
                - listitem [ref=e237]:
                  - generic [ref=e238]:
                    - generic [ref=e239]: Max Powers
                    - img "Max Powers" [ref=e240]
        - navigation "Seitennavigation" [ref=e241]:
          - list [ref=e242]:
            - listitem [ref=e243]:
              - link "Zur Seite 1" [ref=e244] [cursor=pointer]:
                - /url: /blog/
                - text: "1"
  - contentinfo [ref=e245]:
    - generic [ref=e247]:
      - navigation [ref=e248]:
        - list [ref=e249]:
          - listitem [ref=e250]:
            - button "Cookie-Einstellungen" [ref=e251] [cursor=pointer]
          - listitem [ref=e252]:
            - link "Datenschutzerklärung" [ref=e253] [cursor=pointer]:
              - /url: https://www.marketing-factory.de.renovate-develop-frontend-runtime-dependencies.review.mfc.gmbh/datenschutzerklaerung/
          - listitem [ref=e254]:
            - link "Impressum" [ref=e255] [cursor=pointer]:
              - /url: https://www.marketing-factory.de.renovate-develop-frontend-runtime-dependencies.review.mfc.gmbh/impressum/
      - generic [ref=e256]:
        - paragraph [ref=e257]: © Marketing Factory Digital GmbH
        - paragraph [ref=e258]:
          - text: Alternativtexte für Bilder sind teilweise
          - link "KI-generiert" [ref=e259] [cursor=pointer]:
            - /url: https://www.marketing-factory.de.renovate-develop-frontend-runtime-dependencies.review.mfc.gmbh/technologie/typo3/unsere-typo3-extensions/ai-filemetadata/
```

# Test source

```ts
  149 |         await expect(page).toHaveScreenshot(snap('content-textmedia-pixel-2-images-top-bottom-centered'));
  150 |     });
  151 | 
  152 |     test('2-images-beside-text-centered', async ({ page }) => {
  153 |         await setup(page, '/inhaltselemente/textmedia/pixel-bilder/2-bilder-neben-text-zentriert/');
  154 |         await expect(page).toHaveScreenshot(snap('content-textmedia-pixel-2-images-beside-text-centered'));
  155 |     });
  156 | 
  157 |     test('2-images-beside-text', async ({ page }) => {
  158 |         await setup(page, '/inhaltselemente/textmedia/pixel-bilder/2-bilder-neben-text/');
  159 |         await expect(page).toHaveScreenshot(snap('content-textmedia-pixel-2-images-beside-text'));
  160 |     });
  161 | 
  162 |     test('1-image-beside-text-centered-33-percent', async ({ page }) => {
  163 |         await setup(page, '/inhaltselemente/textmedia/pixel-bilder/1-bild-neben-text-zentriert-33-bildbreite/');
  164 |         await expect(page).toHaveScreenshot(snap('content-textmedia-pixel-1-image-beside-text-centered-33-percent'));
  165 |     });
  166 | 
  167 |     test('1-image-beside-text-33-percent', async ({ page }) => {
  168 |         await setup(page, '/inhaltselemente/textmedia/pixel-bilder/1-bild-neben-text-33-bildbreite/');
  169 |         await expect(page).toHaveScreenshot(snap('content-textmedia-pixel-1-image-beside-text-33-percent'));
  170 |     });
  171 | });
  172 | 
  173 | test.describe('content › textmedia › svg-images', () => {
  174 |     test('1-image-top-bottom-centered', async ({ page }) => {
  175 |         await setup(page, '/inhaltselemente/textmedia/svg-bilder/1-bild-oben-unten-zentriert/');
  176 |         await expect(page).toHaveScreenshot(snap('content-textmedia-svg-1-image-top-bottom-centered'));
  177 |     });
  178 | 
  179 |     test('1-image-beside-text-centered', async ({ page }) => {
  180 |         await setup(page, '/inhaltselemente/textmedia/svg-bilder/1-bild-neben-text-zentriert/');
  181 |         await expect(page).toHaveScreenshot(snap('content-textmedia-svg-1-image-beside-text-centered'));
  182 |     });
  183 | 
  184 |     test('1-image-beside-text', async ({ page }) => {
  185 |         await setup(page, '/inhaltselemente/textmedia/svg-bilder/1-bild-neben-text/');
  186 |         await expect(page).toHaveScreenshot(snap('content-textmedia-svg-1-image-beside-text'));
  187 |         await setDarkTheme(page);
  188 |         await expect(page).toHaveScreenshot(snap('content-textmedia-svg-1-image-beside-text-dark'));
  189 |     });
  190 | 
  191 |     test('2-images-top-bottom-centered', async ({ page }) => {
  192 |         await setup(page, '/inhaltselemente/textmedia/svg-bilder/2-bilder-oben-unten-zentriert/');
  193 |         await expect(page).toHaveScreenshot(snap('content-textmedia-svg-2-images-top-bottom-centered'));
  194 |     });
  195 | 
  196 |     test('2-images-beside-text-centered', async ({ page }) => {
  197 |         await setup(page, '/inhaltselemente/textmedia/svg-bilder/2-bilder-neben-text-zentriert/');
  198 |         await expect(page).toHaveScreenshot(snap('content-textmedia-svg-2-images-beside-text-centered'));
  199 |     });
  200 | 
  201 |     test('2-images-beside-text', async ({ page }) => {
  202 |         await setup(page, '/inhaltselemente/textmedia/svg-bilder/2-bilder-neben-text/');
  203 |         await expect(page).toHaveScreenshot(snap('content-textmedia-svg-2-images-beside-text'));
  204 |     });
  205 | 
  206 |     test('1-image-beside-text-centered-33-percent', async ({ page }) => {
  207 |         await setup(page, '/inhaltselemente/textmedia/svg-bilder/1-bild-neben-text-zentriert-33-bildbreite/');
  208 |         await expect(page).toHaveScreenshot(snap('content-textmedia-svg-1-image-beside-text-centered-33-percent'));
  209 |     });
  210 | 
  211 |     test('1-image-beside-text-33-percent', async ({ page }) => {
  212 |         await setup(page, '/inhaltselemente/textmedia/svg-bilder/1-bild-neben-text-33-bildbreite/');
  213 |         await expect(page).toHaveScreenshot(snap('content-textmedia-svg-1-image-beside-text-33-percent'));
  214 |     });
  215 | });
  216 | 
  217 | test.describe('page-types', () => {
  218 |     test('client-list', async ({ page }) => {
  219 |         await setup(page, '/seitentypen/kunden-listenansicht/');
  220 |         await expect(page).toHaveScreenshot(snap('page-type-client-list'));
  221 |     });
  222 | 
  223 |     test('client-pfm', async ({ page }) => {
  224 |         await setup(page, '/seitentypen/kunden-listenansicht/pfm-medical-sg/');
  225 |         await expect(page).toHaveScreenshot(snap('page-type-client-pfm'));
  226 |     });
  227 | });
  228 | 
  229 | test.describe('plugins', () => {
  230 |     test('project-list', async ({ page }) => {
  231 |         await setup(page, '/plugins/projekt-liste/');
  232 |         await expect(page).toHaveScreenshot(snap('plugin-project-list'));
  233 |     });
  234 | 
  235 |     test('project-obermeyer-corporate', async ({ page }) => {
  236 |         await setup(page, '/seitentypen/kunden-listenansicht/obermeyer-sg/launch-der-neuen-corporate-site-der-unternehmensgruppe-obermeyer-sg/');
  237 |         await expect(page).toHaveScreenshot(snap('plugin-project-obermeyer-corporate'));
  238 |     });
  239 | 
  240 |     test('picturecredits', async ({ page }) => {
  241 |         await setup(page, '/plugins/picturecredits/');
  242 |         await expect(page).toHaveScreenshot(snap('plugin-picturecredits'));
  243 |     });
  244 | });
  245 | 
  246 | test.describe('blog', () => {
  247 |     test('overview', async ({ page }) => {
  248 |         await setup(page, '/blog/');
> 249 |         await expect(page).toHaveScreenshot(snap('blog-overview'));
      |                            ^ Error: expect(page).toHaveScreenshot(expected) failed
  250 |         await setDarkTheme(page);
  251 |         await expect(page).toHaveScreenshot(snap('blog-overview-dark'));
  252 |     });
  253 | 
  254 |     test('list-authors', async ({ page }) => {
  255 |         await setup(page, '/blog/autoren/');
  256 |         await expect(page).toHaveScreenshot(snap('blog-list-authors'));
  257 |     });
  258 | 
  259 |     test('author', async ({ page }) => {
  260 |         await setup(page, '/blog/autoren/max-powers/');
  261 |         await expect(page).toHaveScreenshot(snap('blog-author'));
  262 |     });
  263 | 
  264 |     test('list-categories', async ({ page }) => {
  265 |         await setup(page, '/blog/kategorien/');
  266 |         await expect(page).toHaveScreenshot(snap('blog-list-categories'));
  267 |     });
  268 | 
  269 |     test('category', async ({ page }) => {
  270 |         await setup(page, '/blog/kategorien/schokolade/');
  271 | 
  272 | 
  273 |         await expect(page).toHaveScreenshot(snap('blog-category'));
  274 |     });
  275 | 
  276 |     test('list-blogseries', async ({ page }) => {
  277 |         await setup(page, '/blog/blogreihen/');
  278 |         await expect(page).toHaveScreenshot(snap('blog-list-blogseries'));
  279 |     });
  280 | 
  281 |     test('blogseries', async ({ page }) => {
  282 |         await setup(page, '/blog/blogreihen/styleguide-highlights/');
  283 |         await expect(page).toHaveScreenshot(snap('blog-blogseries'));
  284 |     });
  285 | 
  286 |     test('post-menu-elements', async ({ page }) => {
  287 |         await setup(page, '/blog/mit-menue-elementen/');
  288 |         await expect(page).toHaveScreenshot(snap('blog-post-menu-elements'));
  289 |     });
  290 | 
  291 |     test('post-blogseries', async ({ page }) => {
  292 |         await setup(page, '/blog/erster-teil-einer-serie/');
  293 |         await expect(page).toHaveScreenshot(snap('blog-post-blogseries'));
  294 |     });
  295 | 
  296 |     test('post-no-featured-image', async ({ page }) => {
  297 |         await setup(page, '/blog/ohne-beitragsbild/');
  298 |         await expect(page).toHaveScreenshot(snap('blog-post-no-featured-image'));
  299 |     });
  300 | 
  301 |     test('post-with-comments', async ({ page }) => {
  302 |         await setup(page, '/blog/mit-kommentaren/');
  303 |         await expect(page).toHaveScreenshot(snap('blog-post-with-comments'));
  304 |     });
  305 | 
  306 |     test('post-inactive-author', async ({ page }) => {
  307 |         await setup(page, '/blog/drei-autoren-einer-inaktiv/');
  308 |         await expect(page).toHaveScreenshot(snap('blog-post-inactive-author'));
  309 |     });
  310 | 
  311 |     test('post-localized-featured-image', async ({ page }) => {
  312 |         await setup(page, '/blog/uebersetztes-featured-image/');
  313 |         await expect(page).toHaveScreenshot(snap('blog-post-localized-featured-image'));
  314 |     });
  315 | });
  316 | 
  317 | test.describe('forms', () => {
  318 |     test('contact', async ({ page }) => {
  319 |         await setup(page, '/formulare/kontaktformular/');
  320 |         await expect(page).toHaveScreenshot(snap('forms-contact'));
  321 |         await setDarkTheme(page);
  322 |         await expect(page).toHaveScreenshot(snap('forms-contact-dark'));
  323 |     });
  324 | 
  325 |     test('footer', async ({ page }) => {
  326 |         await setup(page, '/formulare/footer-formular/');
  327 |         await expect(page).toHaveScreenshot(snap('forms-footer'));
  328 |     });
  329 | 
  330 |     test('example', async ({ page }) => {
  331 |         await setup(page, '/formulare/styleguide-testformular/');
  332 |         await expect(page).toHaveScreenshot(snap('forms-example'));
  333 |         await setDarkTheme(page);
  334 |         await expect(page).toHaveScreenshot(snap('forms-example-dark'));
  335 |     });
  336 | });
  337 | 
```