импортировать случайный

В представленном коде используется Playwright для автоматизации браузера с синхронным API. Основные моменты:

Короткий ответ

Что ответить на собеседовании

В представленном коде используется Playwright для автоматизации браузера с синхронным API. Основные моменты:

Подробный разбор

Ответ с пояснениями

Условие

импортировать случайный из времени импортировать сон из playwright.sync_api импортировать sync_playwright

def test_1(): wait = 12

браузер = sync_playwright().start().chromium.launch(headless=False)
страница = браузер.new_page()

def handle_route(route):
    route.fulfill(
        status=200,
        content_type="application/json",
        json={"symbols": [{"symbol": "SPY", "description": "test purposes"}]}
    )

страница.route("**/symbol_search/**", handle_route)
страница.goto("[link]

sleep(wait)

l = страница.locator("//*[ @id='header-toolbar-symbol-search']/div")
l.click()
sleep(3)

тикеры = ["AAPL", "BTCUSD", "TSLA", "NVDA"]
символ = случайный.выбор(тикеры)

страница.get_by_placeholder("Search").fill(символ)
страница.keyboard.press("Enter")

вернуть страницу

def test_2(): страница = test_1() sleep(5)

страница.locator("//*[ @id='header-toolbar-user-menu']/div[2]/div/div[2]/div[1]/div/div[3]/button").click()
страница.locator("//span[contains(text(), 'Sign in')]")

sleep(7)
страница.locator("//span[contains(text(), 'Sign in')]").click()

Ответ

В представленном коде используется Playwright для автоматизации браузера с синхронным API. Основные моменты:

  • Создается браузер Chromium в режиме с UI (headless=False).
  • Настраивается перехват запросов к URL с шаблоном **/symbol_search/**, на которые возвращается фиктивный JSON с одним символом "SPY".
  • Открывается страница по указанному URL (в коде [link] — нужно заменить на реальный).
  • После ожидания кликается элемент с локатором по XPath, затем в поле с placeholder "Search" вводится случайный тикер из списка и нажимается Enter.

Вторая функция test_2 вызывает test_1, ждет, затем кликает по элементам меню пользователя, в том числе по кнопке "Sign in".

Пример использования маршрутизации (route) в Playwright позволяет подменять ответы сервера для тестирования UI без реального backend. Это удобно для изоляции тестов и контроля данных.

Если нужно улучшить код:

  • Лучше использовать ожидания Playwright (page.wait_for_selector) вместо sleep для надежности.
  • Локаторы по XPath можно заменить на более стабильные селекторы.

Пример замены sleep на ожидание:

page.locator("//*[ @id='header-toolbar-symbol-search']/div").click()
page.wait_for_selector("input[placeholder='Search']")

Это повысит стабильность тестов.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее