diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/bot_detection/__init__.py b/tests/bot_detection/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/core/__init__.py b/tests/core/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/core/test_tab.py b/tests/core/test_tab.py index 37a1f73..766aad1 100644 --- a/tests/core/test_tab.py +++ b/tests/core/test_tab.py @@ -1,4 +1,9 @@ +import asyncio + +import pytest + import zendriver as zd +from tests.sample_data import sample_file async def test_set_user_agent_sets_navigator_values(browser: zd.Browser): @@ -26,3 +31,20 @@ async def test_set_user_agent_defaults_existing_user_agent(browser: zd.Browser): navigator_language = await tab.evaluate("navigator.language") assert navigator_user_agent == existing_user_agent assert navigator_language == "testLang" + + +async def test_find_finds_element_by_text(browser: zd.Browser): + tab = await browser.get(sample_file("groceries.html")) + + result = await tab.find("Apples") + + assert result is not None + assert result.tag == "li" + assert result.text == "Apples" + + +async def test_find_times_out_if_element_not_found(browser: zd.Browser): + tab = await browser.get(sample_file("groceries.html")) + + with pytest.raises(asyncio.TimeoutError): + await tab.find("Clothes", timeout=1) diff --git a/tests/sample_data/__init__.py b/tests/sample_data/__init__.py new file mode 100644 index 0000000..40767c7 --- /dev/null +++ b/tests/sample_data/__init__.py @@ -0,0 +1,6 @@ +from pathlib import Path + + +def sample_file(name: str) -> str: + path = (Path(__file__).parent / name).absolute() + return f"file://{path}" diff --git a/tests/sample_data/groceries.html b/tests/sample_data/groceries.html new file mode 100644 index 0000000..d274b8a --- /dev/null +++ b/tests/sample_data/groceries.html @@ -0,0 +1,19 @@ + + + + Grocery List + + + +

Grocery List

+