├── .flake8 ├── .gitignore ├── .readthedocs.yaml ├── LICENSE ├── Makefile ├── README.md ├── docs ├── about_firefox.md ├── comparisons.md ├── conf.py ├── images │ └── usage-request-interception-example.png ├── index.rst ├── network.rst ├── network │ ├── fetch_domain.md │ └── http_domain.md ├── start.rst └── start │ ├── installation.md │ ├── scrape.md │ └── usage.md ├── poetry.lock ├── pyproject.toml └── src └── mokr ├── __init__.py ├── browser ├── __init__.py ├── browser.py ├── console.py ├── context.py ├── page.py ├── target.py ├── viewport.py └── worker.py ├── connection ├── __init__.py ├── base.py ├── connection.py └── devtools.py ├── console.py ├── constants ├── __init__.py ├── events.py ├── http.py ├── info.py ├── javascript │ ├── __init__.py │ ├── add_binding.js │ ├── element_in_view.js │ ├── embed_js.js │ ├── embed_js_url.js │ ├── embed_style.js │ ├── embed_style_url.js │ ├── evaluate_xpath.js │ ├── fetch_request.js │ ├── get_binding_result.js │ ├── get_content.js │ ├── get_property.js │ ├── scroll_into_view.js │ ├── select_values.js │ ├── set_content.js │ ├── wait_for_node.js │ └── wait_for_page.js ├── keys.py └── typing.py ├── download.py ├── exceptions.py ├── execution ├── __init__.py ├── context.py └── handle │ ├── __init__.py │ ├── element.py │ └── javascript.py ├── frame ├── __init__.py ├── frame.py ├── manager.py └── wait.py ├── input ├── __init__.py ├── dialog.py ├── keyboard.py ├── mouse.py └── touchscreen.py ├── launch ├── __init__.py ├── base.py ├── chrome.py └── firefox.py ├── network ├── __init__.py ├── event.py ├── extensions │ └── ffauth │ │ ├── background.js │ │ └── manifest.json ├── fetch.py ├── http.py ├── manager │ ├── __init__.py │ ├── base.py │ ├── chrome.py │ └── firefox.py ├── request.py ├── response.py └── security.py ├── utils ├── __init__.py ├── launch.py └── remote.py └── waiters ├── __init__.py ├── event.py └── navigation.py /.flake8: -------------------------------------------------------------------------------- 1 | [flake8] 2 | max-line-length=80 3 | ignore=E731,W503 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/.gitignore -------------------------------------------------------------------------------- /.readthedocs.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/.readthedocs.yaml -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/LICENSE -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/README.md -------------------------------------------------------------------------------- /docs/about_firefox.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/docs/about_firefox.md -------------------------------------------------------------------------------- /docs/comparisons.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/docs/comparisons.md -------------------------------------------------------------------------------- /docs/conf.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/docs/conf.py -------------------------------------------------------------------------------- /docs/images/usage-request-interception-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/docs/images/usage-request-interception-example.png -------------------------------------------------------------------------------- /docs/index.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/docs/index.rst -------------------------------------------------------------------------------- /docs/network.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/docs/network.rst -------------------------------------------------------------------------------- /docs/network/fetch_domain.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/docs/network/fetch_domain.md -------------------------------------------------------------------------------- /docs/network/http_domain.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/docs/network/http_domain.md -------------------------------------------------------------------------------- /docs/start.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/docs/start.rst -------------------------------------------------------------------------------- /docs/start/installation.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/docs/start/installation.md -------------------------------------------------------------------------------- /docs/start/scrape.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/docs/start/scrape.md -------------------------------------------------------------------------------- /docs/start/usage.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/docs/start/usage.md -------------------------------------------------------------------------------- /poetry.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/poetry.lock -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/pyproject.toml -------------------------------------------------------------------------------- /src/mokr/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/__init__.py -------------------------------------------------------------------------------- /src/mokr/browser/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/browser/__init__.py -------------------------------------------------------------------------------- /src/mokr/browser/browser.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/browser/browser.py -------------------------------------------------------------------------------- /src/mokr/browser/console.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/browser/console.py -------------------------------------------------------------------------------- /src/mokr/browser/context.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/browser/context.py -------------------------------------------------------------------------------- /src/mokr/browser/page.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/browser/page.py -------------------------------------------------------------------------------- /src/mokr/browser/target.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/browser/target.py -------------------------------------------------------------------------------- /src/mokr/browser/viewport.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/browser/viewport.py -------------------------------------------------------------------------------- /src/mokr/browser/worker.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/browser/worker.py -------------------------------------------------------------------------------- /src/mokr/connection/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/connection/__init__.py -------------------------------------------------------------------------------- /src/mokr/connection/base.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/connection/base.py -------------------------------------------------------------------------------- /src/mokr/connection/connection.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/connection/connection.py -------------------------------------------------------------------------------- /src/mokr/connection/devtools.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/connection/devtools.py -------------------------------------------------------------------------------- /src/mokr/console.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/console.py -------------------------------------------------------------------------------- /src/mokr/constants/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/constants/__init__.py -------------------------------------------------------------------------------- /src/mokr/constants/events.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/constants/events.py -------------------------------------------------------------------------------- /src/mokr/constants/http.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/constants/http.py -------------------------------------------------------------------------------- /src/mokr/constants/info.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/constants/info.py -------------------------------------------------------------------------------- /src/mokr/constants/javascript/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/constants/javascript/__init__.py -------------------------------------------------------------------------------- /src/mokr/constants/javascript/add_binding.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/constants/javascript/add_binding.js -------------------------------------------------------------------------------- /src/mokr/constants/javascript/element_in_view.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/mokr/constants/javascript/embed_js.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/constants/javascript/embed_js.js -------------------------------------------------------------------------------- /src/mokr/constants/javascript/embed_js_url.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/constants/javascript/embed_js_url.js -------------------------------------------------------------------------------- /src/mokr/constants/javascript/embed_style.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/constants/javascript/embed_style.js -------------------------------------------------------------------------------- /src/mokr/constants/javascript/embed_style_url.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/constants/javascript/embed_style_url.js -------------------------------------------------------------------------------- /src/mokr/constants/javascript/evaluate_xpath.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/constants/javascript/evaluate_xpath.js -------------------------------------------------------------------------------- /src/mokr/constants/javascript/fetch_request.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/constants/javascript/fetch_request.js -------------------------------------------------------------------------------- /src/mokr/constants/javascript/get_binding_result.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/constants/javascript/get_binding_result.js -------------------------------------------------------------------------------- /src/mokr/constants/javascript/get_content.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/constants/javascript/get_content.js -------------------------------------------------------------------------------- /src/mokr/constants/javascript/get_property.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/constants/javascript/get_property.js -------------------------------------------------------------------------------- /src/mokr/constants/javascript/scroll_into_view.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/constants/javascript/scroll_into_view.js -------------------------------------------------------------------------------- /src/mokr/constants/javascript/select_values.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/constants/javascript/select_values.js -------------------------------------------------------------------------------- /src/mokr/constants/javascript/set_content.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/constants/javascript/set_content.js -------------------------------------------------------------------------------- /src/mokr/constants/javascript/wait_for_node.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/constants/javascript/wait_for_node.js -------------------------------------------------------------------------------- /src/mokr/constants/javascript/wait_for_page.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/constants/javascript/wait_for_page.js -------------------------------------------------------------------------------- /src/mokr/constants/keys.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/constants/keys.py -------------------------------------------------------------------------------- /src/mokr/constants/typing.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/constants/typing.py -------------------------------------------------------------------------------- /src/mokr/download.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/download.py -------------------------------------------------------------------------------- /src/mokr/exceptions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/exceptions.py -------------------------------------------------------------------------------- /src/mokr/execution/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/execution/__init__.py -------------------------------------------------------------------------------- /src/mokr/execution/context.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/execution/context.py -------------------------------------------------------------------------------- /src/mokr/execution/handle/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/mokr/execution/handle/element.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/execution/handle/element.py -------------------------------------------------------------------------------- /src/mokr/execution/handle/javascript.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/execution/handle/javascript.py -------------------------------------------------------------------------------- /src/mokr/frame/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/frame/__init__.py -------------------------------------------------------------------------------- /src/mokr/frame/frame.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/frame/frame.py -------------------------------------------------------------------------------- /src/mokr/frame/manager.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/frame/manager.py -------------------------------------------------------------------------------- /src/mokr/frame/wait.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/frame/wait.py -------------------------------------------------------------------------------- /src/mokr/input/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/input/__init__.py -------------------------------------------------------------------------------- /src/mokr/input/dialog.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/input/dialog.py -------------------------------------------------------------------------------- /src/mokr/input/keyboard.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/input/keyboard.py -------------------------------------------------------------------------------- /src/mokr/input/mouse.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/input/mouse.py -------------------------------------------------------------------------------- /src/mokr/input/touchscreen.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/input/touchscreen.py -------------------------------------------------------------------------------- /src/mokr/launch/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/launch/__init__.py -------------------------------------------------------------------------------- /src/mokr/launch/base.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/launch/base.py -------------------------------------------------------------------------------- /src/mokr/launch/chrome.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/launch/chrome.py -------------------------------------------------------------------------------- /src/mokr/launch/firefox.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/launch/firefox.py -------------------------------------------------------------------------------- /src/mokr/network/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/network/__init__.py -------------------------------------------------------------------------------- /src/mokr/network/event.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/network/event.py -------------------------------------------------------------------------------- /src/mokr/network/extensions/ffauth/background.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/network/extensions/ffauth/background.js -------------------------------------------------------------------------------- /src/mokr/network/extensions/ffauth/manifest.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/network/extensions/ffauth/manifest.json -------------------------------------------------------------------------------- /src/mokr/network/fetch.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/network/fetch.py -------------------------------------------------------------------------------- /src/mokr/network/http.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/network/http.py -------------------------------------------------------------------------------- /src/mokr/network/manager/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/mokr/network/manager/base.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/network/manager/base.py -------------------------------------------------------------------------------- /src/mokr/network/manager/chrome.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/network/manager/chrome.py -------------------------------------------------------------------------------- /src/mokr/network/manager/firefox.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/network/manager/firefox.py -------------------------------------------------------------------------------- /src/mokr/network/request.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/network/request.py -------------------------------------------------------------------------------- /src/mokr/network/response.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/network/response.py -------------------------------------------------------------------------------- /src/mokr/network/security.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/network/security.py -------------------------------------------------------------------------------- /src/mokr/utils/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/utils/__init__.py -------------------------------------------------------------------------------- /src/mokr/utils/launch.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/utils/launch.py -------------------------------------------------------------------------------- /src/mokr/utils/remote.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/utils/remote.py -------------------------------------------------------------------------------- /src/mokr/waiters/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/waiters/__init__.py -------------------------------------------------------------------------------- /src/mokr/waiters/event.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/waiters/event.py -------------------------------------------------------------------------------- /src/mokr/waiters/navigation.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaeleveringham/mokr/HEAD/src/mokr/waiters/navigation.py --------------------------------------------------------------------------------