Source code

Revision control

Copy as Markdown

Other Tools

import pytest
TEXT_TO_TEST = ".trending__link"
async def is_text_visible(client):
# the page does not properly load, so we just time out
# and wait for the element we're interested in to appear
await client.navigate(URL, timeout=1)
link = client.await_css(TEXT_TO_TEST)
assert client.is_displayed(link)
return client.execute_async_script(
"""
const link = arguments[0];
const cb = arguments[1];
const fullHeight = link.scrollHeight;
const parentVisibleHeight = link.parentElement.clientHeight;
link.style.paddingBottom = "0";
window.requestAnimationFrame(() => {
const bottomPaddingHeight = fullHeight - link.scrollHeight;
cb(fullHeight - parentVisibleHeight <= bottomPaddingHeight);
});
""",
link,
)
@pytest.mark.skip_platforms("android", "mac")
@pytest.mark.asyncio
@pytest.mark.with_interventions
async def test_enabled(client):
assert await is_text_visible(client)
@pytest.mark.skip_platforms("android", "mac")
@pytest.mark.asyncio
@pytest.mark.without_interventions
async def test_disabled(client):
assert not await is_text_visible(client)