invisible-selenium 0.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- invisible_selenium/__init__.py +37 -0
- invisible_selenium/__main__.py +4 -0
- invisible_selenium/_behaviour.py +1278 -0
- invisible_selenium/_bridge.py +474 -0
- invisible_selenium/_engine.py +66 -0
- invisible_selenium/_humanize.py +69 -0
- invisible_selenium/_juggler/__init__.py +20 -0
- invisible_selenium/_juggler/_profile.py +142 -0
- invisible_selenium/_juggler/actions.py +1167 -0
- invisible_selenium/_juggler/browser.py +741 -0
- invisible_selenium/_juggler/connection.py +850 -0
- invisible_selenium/_juggler/injected.js +8119 -0
- invisible_selenium/_juggler/injected.py +731 -0
- invisible_selenium/_juggler/keyboard.py +315 -0
- invisible_selenium/_juggler/keylayout.py +573 -0
- invisible_selenium/_juggler/lifecycle.py +417 -0
- invisible_selenium/_juggler/protocol.py +1073 -0
- invisible_selenium/_motion.py +798 -0
- invisible_selenium/_pacing.py +438 -0
- invisible_selenium/_pin.py +160 -0
- invisible_selenium/_reaper.py +66 -0
- invisible_selenium/_recaptcha_seed.py +333 -0
- invisible_selenium/_session.py +519 -0
- invisible_selenium/_version.py +139 -0
- invisible_selenium/cli.py +153 -0
- invisible_selenium/common/__init__.py +0 -0
- invisible_selenium/common/exceptions.py +207 -0
- invisible_selenium/py.typed +0 -0
- invisible_selenium/webdriver/__init__.py +13 -0
- invisible_selenium/webdriver/common/__init__.py +0 -0
- invisible_selenium/webdriver/common/action_chains.py +287 -0
- invisible_selenium/webdriver/common/actions/__init__.py +0 -0
- invisible_selenium/webdriver/common/actions/wheel_input.py +34 -0
- invisible_selenium/webdriver/common/alert.py +54 -0
- invisible_selenium/webdriver/common/by.py +37 -0
- invisible_selenium/webdriver/common/keys.py +92 -0
- invisible_selenium/webdriver/common/timeouts.py +42 -0
- invisible_selenium/webdriver/common/window.py +9 -0
- invisible_selenium/webdriver/firefox/__init__.py +0 -0
- invisible_selenium/webdriver/firefox/options.py +75 -0
- invisible_selenium/webdriver/firefox/service.py +23 -0
- invisible_selenium/webdriver/firefox/webdriver.py +290 -0
- invisible_selenium/webdriver/remote/__init__.py +0 -0
- invisible_selenium/webdriver/remote/shadowroot.py +48 -0
- invisible_selenium/webdriver/remote/switch_to.py +69 -0
- invisible_selenium/webdriver/remote/webdriver.py +767 -0
- invisible_selenium/webdriver/remote/webelement.py +458 -0
- invisible_selenium/webdriver/support/__init__.py +0 -0
- invisible_selenium/webdriver/support/expected_conditions.py +259 -0
- invisible_selenium/webdriver/support/select.py +134 -0
- invisible_selenium/webdriver/support/ui.py +4 -0
- invisible_selenium/webdriver/support/wait.py +68 -0
- invisible_selenium-0.1.0.dist-info/METADATA +75 -0
- invisible_selenium-0.1.0.dist-info/RECORD +58 -0
- invisible_selenium-0.1.0.dist-info/WHEEL +4 -0
- invisible_selenium-0.1.0.dist-info/entry_points.txt +2 -0
- invisible_selenium-0.1.0.dist-info/licenses/LICENSE +21 -0
- invisible_selenium-0.1.0.dist-info/licenses/LICENSE-APACHE +202 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"""invisible_selenium - Selenium's API for a patched Firefox with a stealth profile.
|
|
2
|
+
|
|
3
|
+
Quickstart:
|
|
4
|
+
|
|
5
|
+
from invisible_selenium import webdriver
|
|
6
|
+
from invisible_selenium.webdriver.common.by import By
|
|
7
|
+
|
|
8
|
+
driver = webdriver.Firefox(seed=42) # same seed, same fingerprint
|
|
9
|
+
driver.get("https://example.com")
|
|
10
|
+
driver.find_element(By.TAG_NAME, "a").click() # the pointer travels there
|
|
11
|
+
driver.quit()
|
|
12
|
+
|
|
13
|
+
A replica of invisible_playwright with Selenium's contract: the same engine,
|
|
14
|
+
the same binary, the same profile and the same human-paced input, driven over
|
|
15
|
+
Juggler - with no geckodriver and no Marionette.
|
|
16
|
+
"""
|
|
17
|
+
# ── Import-time core assertion, and repair ───────────────────────────────────
|
|
18
|
+
# Runs BEFORE every other import, exactly as in invisible_playwright: is the
|
|
19
|
+
# installed invisible-core the version this distribution declares? A mismatch
|
|
20
|
+
# is repaired in place when nothing has imported the core yet. See `_pin.py`.
|
|
21
|
+
from ._pin import enforce_core_pin as _enforce_core_pin
|
|
22
|
+
_enforce_core_pin()
|
|
23
|
+
|
|
24
|
+
from invisible_core import BINARY_VERSION, FIREFOX_UPSTREAM_VERSION
|
|
25
|
+
from invisible_core import ensure_binary
|
|
26
|
+
|
|
27
|
+
from . import webdriver
|
|
28
|
+
from ._version import __install_record_version__, __version__
|
|
29
|
+
|
|
30
|
+
__all__ = [
|
|
31
|
+
"webdriver",
|
|
32
|
+
"ensure_binary",
|
|
33
|
+
"BINARY_VERSION",
|
|
34
|
+
"FIREFOX_UPSTREAM_VERSION",
|
|
35
|
+
"__version__",
|
|
36
|
+
"__install_record_version__",
|
|
37
|
+
]
|