# Natural Selector
⚠️ **Under Active Development - Not Production Ready**
Natural language browser automation. Query DOM elements using plain English.
## Quick Example
```python
from natural_selector import NaturalSelector
from natural_selector.integrations import OpenAILLM
# Create selector
selector = NaturalSelector(llm=OpenAILLM())
# Query with natural language
xpaths = selector.select(cdp_snapshot, "search button")
# Returns: ['(//input[@name="btnK"])[1]']
```
## How it Works
1. Capture DOM via Chrome DevTools Protocol
2. Filter invisible/non-semantic elements
3. Create embeddings and semantic search
4. LLM identifies elements from context
5. Generate guaranteed unique XPath selectors
## Features
- Natural language queries
- Guaranteed unique XPath selectors
- Automatic filtering of hidden elements
- Customizable LLMs and embedders
## Status
🚧 **In Development** - Testing phase, API may change
Raw data
{
"_id": null,
"home_page": null,
"name": "natural-selector",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "selector, dom, natural-language, browser-automation, html",
"author": null,
"author_email": "Steve Wang <stevewang.at.work@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/6e/ce/342604366c306f6a89e4f6861a1f7df251f51cf101cf7f39bc5fab747144/natural_selector-0.1.0.tar.gz",
"platform": null,
"description": "# Natural Selector\n\n\u26a0\ufe0f **Under Active Development - Not Production Ready**\n\nNatural language browser automation. Query DOM elements using plain English.\n\n## Quick Example\n\n```python\nfrom natural_selector import NaturalSelector\nfrom natural_selector.integrations import OpenAILLM\n\n# Create selector\nselector = NaturalSelector(llm=OpenAILLM())\n\n# Query with natural language\nxpaths = selector.select(cdp_snapshot, \"search button\")\n# Returns: ['(//input[@name=\"btnK\"])[1]']\n```\n\n## How it Works\n\n1. Capture DOM via Chrome DevTools Protocol\n2. Filter invisible/non-semantic elements\n3. Create embeddings and semantic search\n4. LLM identifies elements from context\n5. Generate guaranteed unique XPath selectors\n\n## Features\n\n- Natural language queries\n- Guaranteed unique XPath selectors\n- Automatic filtering of hidden elements\n- Customizable LLMs and embedders\n\n## Status\n\n\ud83d\udea7 **In Development** - Testing phase, API may change\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Natural language HTML selector engine",
"version": "0.1.0",
"project_urls": null,
"split_keywords": [
"selector",
" dom",
" natural-language",
" browser-automation",
" html"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "1f77ba036bd65e917a07dcc08fb4a84e62963bf82c1d90819fdcdd6a6ded4b13",
"md5": "331081b4a9fe4b04f758779daa6d3fd1",
"sha256": "f4b2e97fb3a6e3c2a22b236e6527a07de749c52e7c0953bcdb8b140f46e9626a"
},
"downloads": -1,
"filename": "natural_selector-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "331081b4a9fe4b04f758779daa6d3fd1",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 32537,
"upload_time": "2025-10-13T00:51:03",
"upload_time_iso_8601": "2025-10-13T00:51:03.663467Z",
"url": "https://files.pythonhosted.org/packages/1f/77/ba036bd65e917a07dcc08fb4a84e62963bf82c1d90819fdcdd6a6ded4b13/natural_selector-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "6ece342604366c306f6a89e4f6861a1f7df251f51cf101cf7f39bc5fab747144",
"md5": "f6d07bb1704bf5be36b5f1e9421ac620",
"sha256": "185f6f036496c1a75283bc14e9b6b4ec32e369e1bb850c23401cd9594e562831"
},
"downloads": -1,
"filename": "natural_selector-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "f6d07bb1704bf5be36b5f1e9421ac620",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 22654,
"upload_time": "2025-10-13T00:51:04",
"upload_time_iso_8601": "2025-10-13T00:51:04.983001Z",
"url": "https://files.pythonhosted.org/packages/6e/ce/342604366c306f6a89e4f6861a1f7df251f51cf101cf7f39bc5fab747144/natural_selector-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-13 00:51:04",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "natural-selector"
}