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

# Error details

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

  Expected an image 328px by 2865px, received 328px by 2737px. 

  Snapshot: blog-author.png

Call log:
  - Expect "toHaveScreenshot(blog-author.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 328px by 2865px, received 328px by 2737px.
  - 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 328px by 2865px, received 328px by 2737px.

```

# 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: /
        - listitem [ref=e37]:
          - text: /
          - link "Blog" [ref=e38] [cursor=pointer]:
            - /url: /blog/
        - listitem [ref=e40]:
          - text: /
          - link "Autoren" [ref=e41] [cursor=pointer]:
            - /url: /blog/autoren/
        - listitem [ref=e43]:
          - text: /
          - generic [ref=e44]: Max Powers
  - main [ref=e45]:
    - generic [ref=e48]:
      - generic [ref=e49]:
        - generic [ref=e51]:
          - generic [ref=e52]: Max Powers
          - generic [ref=e54]: Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
          - list [ref=e56]:
            - listitem [ref=e57]:
              - link "Der Autor auf Twitter" [ref=e58] [cursor=pointer]:
                - /url: https://twitter.com/maxpowers1
        - link "Zur Übersicht der Autoren" [ref=e63] [cursor=pointer]:
          - /url: /blog/autoren/
      - generic [ref=e64]:
        - heading "Beiträge von Max Powers" [level=1] [ref=e66]
        - generic [ref=e67]:
          - article [ref=e69]:
            - figure [ref=e71]
            - generic [ref=e72]:
              - paragraph [ref=e73]:
                - link "Dritter Teil einer Serie" [ref=e74] [cursor=pointer]:
                  - /url: /blog/dritter-teil-einer-serie/
              - paragraph [ref=e75]: Hier wird automatisch das Menü der Blogreihe in der rechten Spalte ausgegeben.
              - text: Beitrag lesen
            - generic [ref=e76]:
              - time [ref=e77]: 16.06.2023
              - generic [ref=e78]:
                - generic [ref=e79]: Max Powers
                - img "Max Powers" [ref=e80]
          - article [ref=e82]:
            - figure [ref=e84]
            - generic [ref=e85]:
              - paragraph [ref=e86]:
                - link "Zweiter Teil einer Serie" [ref=e87] [cursor=pointer]:
                  - /url: /blog/zweiter-teil-einer-serie/
              - paragraph [ref=e88]: SEO-Beschreibung und Teaser-Text fehlen, daher wird der vorhandene Blogtext in der Card gerendert. Lorem ipsum dolor...
              - text: Beitrag lesen
            - generic [ref=e89]:
              - time [ref=e90]: 18.04.2023
              - generic [ref=e91]:
                - generic [ref=e92]: Max Powers
                - img "Max Powers" [ref=e93]
          - article [ref=e95]:
            - figure [ref=e97]
            - generic [ref=e98]:
              - paragraph [ref=e99]:
                - link "Erster Teil einer Serie" [ref=e100] [cursor=pointer]:
                  - /url: /blog/erster-teil-einer-serie/
              - paragraph [ref=e101]: Hier wird automatisch das Menü der Blogreihe in der rechten Spalte ausgegeben.
              - text: Beitrag lesen
            - generic [ref=e102]:
              - time [ref=e103]: 15.02.2023
              - generic [ref=e104]:
                - generic [ref=e105]: Max Powers
                - img "Max Powers" [ref=e106]
          - article [ref=e108]:
            - figure [ref=e110]
            - generic [ref=e111]:
              - paragraph [ref=e112]:
                - link "Drei Autoren, einer inaktiv" [ref=e113] [cursor=pointer]:
                  - /url: /blog/drei-autoren-einer-inaktiv/
              - paragraph [ref=e114]: Der inaktive (ehemalige) Autor wird am Ende der Autorenbox einsortiert und ist kein Accordion-Element.
              - text: Beitrag lesen
            - generic [ref=e115]:
              - time [ref=e116]: 09.03.2022
              - list [ref=e117]:
                - listitem [ref=e118]:
                  - generic [ref=e119]: Michael Mustermann
                - listitem [ref=e123]:
                  - generic [ref=e124]:
                    - generic [ref=e125]: Ehemaliger Kollege
                    - img "Ehemaliger Kollege" [ref=e126]
                - listitem [ref=e127]:
                  - generic [ref=e128]:
                    - generic [ref=e129]: Max Powers
                    - img "Max Powers" [ref=e130]
        - navigation "Seitennavigation" [ref=e131]:
          - list [ref=e132]:
            - listitem [ref=e133]:
              - link "Zur Seite 1" [ref=e134] [cursor=pointer]:
                - /url: /blog/autoren/max-powers/
                - text: "1"
  - contentinfo [ref=e135]:
    - generic [ref=e137]:
      - navigation [ref=e138]:
        - list [ref=e139]:
          - listitem [ref=e140]:
            - button "Cookie-Einstellungen" [ref=e141] [cursor=pointer]
          - listitem [ref=e142]:
            - link "Datenschutzerklärung" [ref=e143] [cursor=pointer]:
              - /url: https://www.marketing-factory.de.renovate-develop-development-dependencies.review.mfc.gmbh/datenschutzerklaerung/
          - listitem [ref=e144]:
            - link "Impressum" [ref=e145] [cursor=pointer]:
              - /url: https://www.marketing-factory.de.renovate-develop-development-dependencies.review.mfc.gmbh/impressum/
      - generic [ref=e146]:
        - paragraph [ref=e147]: © Marketing Factory Digital GmbH
        - paragraph [ref=e148]:
          - text: Alternativtexte für Bilder sind teilweise
          - link "KI-generiert" [ref=e149] [cursor=pointer]:
            - /url: https://www.marketing-factory.de.renovate-develop-development-dependencies.review.mfc.gmbh/technologie/typo3/unsere-typo3-extensions/ai-filemetadata/
```

# Test source

```ts
  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'));
  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'));
      |                            ^ Error: expect(page).toHaveScreenshot(expected) failed
  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 | 
```