Source code
Revision control
Copy as Markdown
Other Tools
import pytest
URL = "https://www.showroom-live.com/"
FIRST_LIVE_VIDEO_CSS = ".carousel-3d-slide:has(video.is-active) .enter.ga-story-link"
PLAYING_VIDEO_CSS = "#live-video-player_html5_api"
FAIL_MSG = "ReferenceError: assignment to undeclared variable hlsSrc"
async def get_to_live_video(client):
await client.navigate(URL, wait="none")
link = client.execute_script(
"""
return URL.parse(arguments[0].href, location.href).href;
""",
client.await_css(FIRST_LIVE_VIDEO_CSS),
)
await client.navigate(link, wait="none")
@pytest.mark.skip_platforms("android")
@pytest.mark.asyncio
@pytest.mark.with_interventions
async def test_enabled(client):
await get_to_live_video(client)
return client.execute_async_script(
"""
const [video, done] = arguments;
setInterval(() => {
if (!video.paused) {
done();
}
}, 100);
""",
client.await_css(PLAYING_VIDEO_CSS, is_displayed=True),
)
@pytest.mark.skip_platforms("android")
@pytest.mark.asyncio
@pytest.mark.without_interventions
async def test_disabled(client):
await get_to_live_video(client)
await (await client.promise_console_message_listener(FAIL_MSG))