diff --git a/docs/reference/session.rst b/docs/reference/session.rst index 3ff3cae..92fe8d7 100644 --- a/docs/reference/session.rst +++ b/docs/reference/session.rst @@ -120,6 +120,12 @@ :rtype: str + .. py:method:: get_title + + Coroutine to get the title of the current page. + + :rtype: str + .. py:method:: get_element(selector) Coroutine to get an element via CSS selector. diff --git a/src/arsenic/session.py b/src/arsenic/session.py index 2b2bd16..6ec571a 100644 --- a/src/arsenic/session.py +++ b/src/arsenic/session.py @@ -159,6 +159,9 @@ async def get_url(self): async def get_page_source(self) -> str: return await self._request(url="/source", method="GET") + async def get_title(self) -> str: + return await self._request(url="/title", method="GET") + async def get_element( self, selector: str, selector_type: SelectorType = SelectorType.css_selector ) -> Element: diff --git a/tests/test_real_browsers.py b/tests/test_real_browsers.py index 71266b6..8fe9939 100644 --- a/tests/test_real_browsers.py +++ b/tests/test_real_browsers.py @@ -20,6 +20,11 @@ async def test_get_page_source(session): assert "Hello World!" in await session.get_page_source() +async def test_get_title(session): + await session.get("/") + assert "Test Index" == await session.get_title() + + async def test_element_not_found(session): await session.get("/") with pytest.raises(NoSuchElement):