diff --git a/index.html b/index.html
index 5c48a43..94a2dc3 100644
--- a/index.html
+++ b/index.html
@@ -31,7 +31,7 @@
Hello, my name is Josh, and I am currently studying CS at MSU.
Although, I am interested in learning about new tech stacks and working on a variety of projects.
If you are in need of a software developer, contact me!
-
+
diff --git a/playwright-tests/first_test.py b/playwright-tests/first_test.py
deleted file mode 100644
index 0c902a1..0000000
--- a/playwright-tests/first_test.py
+++ /dev/null
@@ -1,9 +0,0 @@
-from playwright.sync_api import sync_playwright
-
-def test_example():
- with sync_playwright() as p:
- browser = p.chromium.launch()
- page = browser.new_page()
- page.goto("https://joshuamae.com")
- assert page.title() == "Joshua Mae"
- browser.close()
diff --git a/playwright-tests/sticky_header.py b/playwright-tests/sticky_header.py
new file mode 100644
index 0000000..56c53f2
--- /dev/null
+++ b/playwright-tests/sticky_header.py
@@ -0,0 +1,53 @@
+import asyncio
+from playwright.async_api import async_playwright
+
+async def test_sticky_header(browser_name):
+ async with async_playwright() as p:
+ if browser_name == 'chromium':
+ browser = await p.chromium.launch(headless=False)
+ elif browser_name == 'firefox':
+ browser = await p.firefox.launch(headless=False)
+ elif browser_name == 'webkit':
+ browser = await p.webkit.launch(headless=False)
+ else:
+ raise ValueError("Unsupported browser: " + browser_name)
+
+ page = await browser.new_page()
+
+ await page.goto('https://joshuamae.com')
+
+ header_selector = 'header'
+
+ await page.wait_for_selector(header_selector)
+
+ initial_bounding_box = await page.evaluate(f'''
+ () => {{
+ const header = document.querySelector('{header_selector}');
+ return header.getBoundingClientRect();
+ }}
+ ''')
+
+ await page.evaluate('window.scrollBy(0, 1000)')
+ await page.wait_for_timeout(1000)
+
+ after_scroll_bounding_box = await page.evaluate(f'''
+ () => {{
+ const header = document.querySelector('{header_selector}');
+ return header.getBoundingClientRect();
+ }}
+ ''')
+
+ is_sticky = initial_bounding_box['top'] == after_scroll_bounding_box['top']
+ assert is_sticky, f"Header is not sticky in {browser_name}."
+
+ print(f"Sticky header test passed in {browser_name}.")
+
+ await browser.close()
+
+async def main():
+ browsers = ['chromium', 'firefox', 'webkit']
+ for browser in browsers:
+ await test_sticky_header(browser)
+
+if __name__ == "__main__":
+ asyncio.run(main())