import time

import pytest
from webdriver.error import ElementClickInterceptedException, NoSuchElementException

URL = "https://www.afisha.ru/msk/theatre/"
COOKIES_CSS = "button.Txfw7"
OPT_CSS = "button[data-name='price']"
SLIDER_CSS = "input[type='range'][data-index='0']"


async def slider_is_clickable(client):
    await client.navigate(URL)

    try:
        client.soft_click(client.await_css(COOKIES_CSS))
        client.await_element_hidden(client.css(COOKIES_CSS))
    except NoSuchElementException:
        pass

    try:
        client.soft_click(client.await_css(OPT_CSS, is_displayed=True))
    except NoSuchElementException:
        pytest.xfail("Site may have shown a captcha; please run this test again")

    try:
        slider = client.await_css(SLIDER_CSS, is_displayed=True)
        time.sleep(0.5)
        slider.click()
    except ElementClickInterceptedException:
        return False

    return True


@pytest.mark.asyncio
@pytest.mark.with_interventions
async def test_enabled(client):
    assert await slider_is_clickable(client)


@pytest.mark.asyncio
@pytest.mark.without_interventions
async def test_disabled(client):
    assert not await slider_is_clickable(client)
