# Async Webdriver
[](https://circleci.com/gh/HDE/arsenic/tree/main) [](http://arsenic.readthedocs.io/en/latest/?badge=latest)
[](https://automate.browserstack.com/public-build/QmtNVHFnWWRFSEVUdTBZNWU5NGMraVorWVltazFqRk1VNWRydW5FRXU2dz0tLVhoTlFuK2tZUTJ1UGx0UmZaWjg4R1E9PQ==--35ef3d28fbf8ea24ee7fa2a435f9271fbaaf85d4)
[](https://ci.appveyor.com/project/ojii/arsenic)
[](https://badge.fury.io/py/arsenic)
[](https://github.com/ambv/black)
[](https://opensource.org/licenses/Apache-2.0)
Asynchronous webdriver client built on asyncio.
## Quickstart
Let's run a local Firefox instance.
```python
from wapiti_arsenic import get_session
from wapiti_arsenic.browsers import Firefox
from wapiti_arsenic.services import Geckodriver
async def example():
# Runs geckodriver and starts a firefox session
async with get_session(Geckodriver(), Firefox()) as session:
# go to example.com
await session.get('http://example.com')
# wait up to 5 seconds to get the h1 element from the page
h1 = await session.wait_for_element(5, 'h1')
# print the text of the h1 element
print(await h1.get_text())
```
For more information, check [the documentation](https://arsenic.readthedocs.io/)
## CI Supported by Browserstack
Continuous integration for certain browsers is generously provided by [Browserstack](http://browserstack.com).
[](http://browserstack.com/)
Raw data
{
"_id": null,
"home_page": "https://github.com/wapiti-scanner/arsenic/",
"name": "wapiti-arsenic",
"maintainer": null,
"docs_url": null,
"requires_python": "<3.14,>=3.10",
"maintainer_email": null,
"keywords": "asyncio",
"author": "Jonas Obrist",
"author_email": "jonas.obrist@hennge.com",
"download_url": "https://files.pythonhosted.org/packages/82/31/ae3ed2e041a4a18f1d3ca8f0fbdd8bb774fb3269b3ea61f69f6c0094c1a9/wapiti_arsenic-28.4.tar.gz",
"platform": null,
"description": "# Async Webdriver\n\n[](https://circleci.com/gh/HDE/arsenic/tree/main) [](http://arsenic.readthedocs.io/en/latest/?badge=latest)\n[](https://automate.browserstack.com/public-build/QmtNVHFnWWRFSEVUdTBZNWU5NGMraVorWVltazFqRk1VNWRydW5FRXU2dz0tLVhoTlFuK2tZUTJ1UGx0UmZaWjg4R1E9PQ==--35ef3d28fbf8ea24ee7fa2a435f9271fbaaf85d4)\n[](https://ci.appveyor.com/project/ojii/arsenic)\n[](https://badge.fury.io/py/arsenic)\n[](https://github.com/ambv/black)\n[](https://opensource.org/licenses/Apache-2.0)\n\n\nAsynchronous webdriver client built on asyncio.\n\n\n## Quickstart\n\nLet's run a local Firefox instance.\n\n\n```python\n\nfrom wapiti_arsenic import get_session\nfrom wapiti_arsenic.browsers import Firefox\nfrom wapiti_arsenic.services import Geckodriver\n\n\nasync def example():\n # Runs geckodriver and starts a firefox session\n async with get_session(Geckodriver(), Firefox()) as session:\n # go to example.com\n await session.get('http://example.com')\n # wait up to 5 seconds to get the h1 element from the page\n h1 = await session.wait_for_element(5, 'h1')\n # print the text of the h1 element\n print(await h1.get_text())\n```\n\nFor more information, check [the documentation](https://arsenic.readthedocs.io/)\n\n## CI Supported by Browserstack\n\nContinuous integration for certain browsers is generously provided by [Browserstack](http://browserstack.com).\n\n[](http://browserstack.com/)\n\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "Asynchronous WebDriver client",
"version": "28.4",
"project_urls": {
"Documentation": "https://arsenic.readthedocs.io/en/latest/",
"Homepage": "https://github.com/wapiti-scanner/arsenic/",
"Repository": "https://github.com/wapiti-scanner/arsenic/"
},
"split_keywords": [
"asyncio"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "792741ab7713a0f44fd99671f8a5265a5898df9ac69ac4bd4b49beb692b50e15",
"md5": "63aa360937ea4590392d61fc75efb5fe",
"sha256": "c032a950c4f6def6fed8fd9b3787e7a5af68fc5db92eebfa500862e469845110"
},
"downloads": -1,
"filename": "wapiti_arsenic-28.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "63aa360937ea4590392d61fc75efb5fe",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<3.14,>=3.10",
"size": 18981,
"upload_time": "2025-10-24T16:15:45",
"upload_time_iso_8601": "2025-10-24T16:15:45.764920Z",
"url": "https://files.pythonhosted.org/packages/79/27/41ab7713a0f44fd99671f8a5265a5898df9ac69ac4bd4b49beb692b50e15/wapiti_arsenic-28.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "8231ae3ed2e041a4a18f1d3ca8f0fbdd8bb774fb3269b3ea61f69f6c0094c1a9",
"md5": "b3237533fca2012f3c2419849507c471",
"sha256": "ae957a6abc36a1b81b89d16ccecea0bdf812204c6bc4adf198e9c3b6e4c69ade"
},
"downloads": -1,
"filename": "wapiti_arsenic-28.4.tar.gz",
"has_sig": false,
"md5_digest": "b3237533fca2012f3c2419849507c471",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.14,>=3.10",
"size": 15821,
"upload_time": "2025-10-24T16:15:47",
"upload_time_iso_8601": "2025-10-24T16:15:47.172871Z",
"url": "https://files.pythonhosted.org/packages/82/31/ae3ed2e041a4a18f1d3ca8f0fbdd8bb774fb3269b3ea61f69f6c0094c1a9/wapiti_arsenic-28.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-24 16:15:47",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "wapiti-scanner",
"github_project": "arsenic",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"circle": true,
"appveyor": true,
"lcname": "wapiti-arsenic"
}