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())