<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://code-mage.dev</loc>
<changefreq>weekly</changefreq>
<priority>1</priority>
</url>
<url>
<loc>https://code-mage.dev/blog</loc>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://code-mage.dev/tutorial</loc>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://code-mage.dev/about</loc>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://code-mage.dev/contact</loc>
<changefreq>monthly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://code-mage.dev/blog/webdriverio-open-source-contributions</loc>
<lastmod>2026-09-16T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://code-mage.dev/blog/mentoring-junior-engineers-test-frameworks</loc>
<lastmod>2026-09-15T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://code-mage.dev/blog/page-object-model-done-right</loc>
<lastmod>2026-09-14T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://code-mage.dev/blog/json-compare-tool</loc>
<lastmod>2026-09-13T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://code-mage.dev/blog/django-channels-websockets-real-time</loc>
<lastmod>2026-09-13T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://code-mage.dev/blog/wdio-wait-for-origin-story</loc>
<lastmod>2026-09-12T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://code-mage.dev/blog/selenium-grid-on-a-budget</loc>
<lastmod>2026-09-12T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://code-mage.dev/blog/contributing-to-webdriverio-docs</loc>
<lastmod>2026-09-11T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://code-mage.dev/blog/proxypal-shadowsocks-vpn-client</loc>
<lastmod>2026-09-10T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://code-mage.dev/blog/cypress-16-whats-new</loc>
<lastmod>2026-09-09T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://code-mage.dev/blog/playwright-ui-mode-debugging</loc>
<lastmod>2026-08-26T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://code-mage.dev/blog/from-full-stack-to-framework-architect</loc>
<lastmod>2026-08-12T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://code-mage.dev/blog/freelancing-while-full-time</loc>
<lastmod>2026-07-29T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://code-mage.dev/blog/anti-detection-scraping-engine</loc>
<lastmod>2026-07-15T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://code-mage.dev/blog/one-webdriverio-framework-three-platforms</loc>
<lastmod>2026-07-01T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://code-mage.dev/blog/recursive-traversal-vs-fixed-loops</loc>
<lastmod>2026-06-17T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://code-mage.dev/blog/fastapi-microservice-pdf-extraction</loc>
<lastmod>2026-06-03T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://code-mage.dev/blog/credential-rotation-state-machine-at-scale</loc>
<lastmod>2026-05-20T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://code-mage.dev/blog/cypress-to-playwright-without-touching-tests</loc>
<lastmod>2026-05-06T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://code-mage.dev/blog/webdriverio-suite-8-hours-to-2</loc>
<lastmod>2026-04-22T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://code-mage.dev/blog/unifying-23-payer-integrations-in-two-weeks</loc>
<lastmod>2026-04-08T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://code-mage.dev/blog/what-is-patchright</loc>
<lastmod>2026-03-25T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://code-mage.dev/blog/ci-cd-for-playwright-tests</loc>
<lastmod>2026-03-05T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://code-mage.dev/blog/python-type-hints-for-testers</loc>
<lastmod>2026-02-03T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://code-mage.dev/blog/why-playwright-over-selenium</loc>
<lastmod>2026-01-10T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://code-mage.dev/tutorial/prerequisites</loc>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://code-mage.dev/tutorial/prerequisites/nodejs-npm-terminal</loc>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://code-mage.dev/tutorial/prerequisites/typescript-for-testers</loc>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://code-mage.dev/tutorial/prerequisites/browser-devtools</loc>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://code-mage.dev/tutorial/prerequisites/testing-fundamentals</loc>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://code-mage.dev/tutorial/playwright</loc>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://code-mage.dev/tutorial/playwright/introduction</loc>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://code-mage.dev/tutorial/playwright/installation-setup</loc>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://code-mage.dev/tutorial/playwright/selectors</loc>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://code-mage.dev/tutorial/playwright/assertions</loc>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://code-mage.dev/tutorial/playwright/page-object-model</loc>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://code-mage.dev/tutorial/playwright/advanced</loc>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://code-mage.dev/tutorial/playwright/flaky-tests</loc>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://code-mage.dev/tutorial/playwright/ci-cd</loc>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://code-mage.dev/tutorial/webdriverio</loc>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://code-mage.dev/tutorial/webdriverio/introduction</loc>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://code-mage.dev/tutorial/webdriverio/installation-setup</loc>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://code-mage.dev/tutorial/webdriverio/writing-tests</loc>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://code-mage.dev/tutorial/webdriverio/assertions</loc>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://code-mage.dev/tutorial/webdriverio/page-object-model</loc>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://code-mage.dev/tutorial/webdriverio/advanced-interactions</loc>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://code-mage.dev/tutorial/webdriverio/flaky-tests</loc>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://code-mage.dev/tutorial/webdriverio/ci-cd</loc>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://code-mage.dev/tutorial/cypress</loc>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://code-mage.dev/tutorial/cypress/introduction</loc>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://code-mage.dev/tutorial/cypress/installation-setup</loc>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://code-mage.dev/tutorial/cypress/selectors-and-commands</loc>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://code-mage.dev/tutorial/cypress/assertions</loc>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://code-mage.dev/tutorial/cypress/page-object-model</loc>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://code-mage.dev/tutorial/cypress/network-and-advanced</loc>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://code-mage.dev/tutorial/cypress/flaky-tests</loc>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://code-mage.dev/tutorial/cypress/ci-cd</loc>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
</urlset>
