43 lines
2 KiB
Python
43 lines
2 KiB
Python
|
|
|
||
|
|
import asyncio
|
||
|
|
import pytest
|
||
|
|
from playwright.async_api import async_playwright
|
||
|
|
|
||
|
|
USER_AGENTS = [
|
||
|
|
# Chrome on Mac
|
||
|
|
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
|
||
|
|
# Chrome on Windows
|
||
|
|
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
|
||
|
|
# Firefox on Mac
|
||
|
|
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:120.0) Gecko/20100101 Firefox/120.0",
|
||
|
|
# Edge on Windows
|
||
|
|
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0",
|
||
|
|
# Safari on Mac
|
||
|
|
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Safari/605.1.15",
|
||
|
|
# iPhone Safari
|
||
|
|
"Mozilla/5.0 (iPhone; CPU iPhone OS 17_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1",
|
||
|
|
]
|
||
|
|
|
||
|
|
@pytest.mark.asyncio
|
||
|
|
async def test_inberlin_login_flow():
|
||
|
|
async with async_playwright() as p:
|
||
|
|
for ua in USER_AGENTS:
|
||
|
|
print("\n==============================")
|
||
|
|
print(f"Testing user agent: {ua}")
|
||
|
|
browser = await p.chromium.launch(headless=True)
|
||
|
|
context = await browser.new_context(user_agent=ua)
|
||
|
|
page = await context.new_page()
|
||
|
|
try:
|
||
|
|
print("Navigating to login page...")
|
||
|
|
login_response = await page.goto("https://www.inberlinwohnen.de/login", wait_until="networkidle")
|
||
|
|
print(f"Login page status: {login_response.status if login_response else 'No response'}")
|
||
|
|
print(f"Login page headers: {login_response.headers if login_response else 'No response'}")
|
||
|
|
await asyncio.sleep(2)
|
||
|
|
except Exception as e:
|
||
|
|
print(f"Exception for user agent: {ua}\n{e}")
|
||
|
|
finally:
|
||
|
|
await browser.close()
|
||
|
|
|
||
|
|
if __name__ == "__main__":
|
||
|
|
asyncio.run(test_inberlin_login_flow())
|