Make a headless window out of every window! Perfect for undetected chromedriver (Selenium) to pass bot detection in headless mode.
From https://github.com/ultrafunkamsterdam/undetected-chromedriver
"just to mention it another time, since some people have hard time reading: headless is still WIP. Raising issues is needless_"
It is of course not the same as Chromes built-in headless mode [that's why I called it PoorMansHeadless :)]
but it allows you to run several automation processes on your pc without getting disturbed all the time.
pip install PoorMansHeadless
# A simple way to get the hwnd for your window:
from PoorMansHeadless import FakeHeadless
hand = FakeHeadless.get_all_windows_with_handle()
hwnd = 2231030
self = FakeHeadless(hwnd)
# The window will be hidden almost completely (99,99999%) . Because of the 0.00001,
# its execution is still a priority for the operating system.
# This little part is a one-pixel-line above the Windows taskbar.
# Too small to see/interact/interfere, but big enough
# to avoid standby mode/rescource saving.
# if you pass None as width and height, the window won't be resized, just moved.
# The upper part will be placed one pixel above the taskbar (distance_from_taskbar)
self.start_headless_mode(width=None, height=None, distance_from_taskbar=1)
# To check if everything is going well in your headless window you can either start a video stream:
self.start_video_stream()
# or save screenshots to the HDD:
self.start_saving_screenshots(
folder="c:\\pictest4", frequency=1
) # if the folder doesn't exist, it will be created. Frequency=1 means one screenshot every second
# if you have seen enough, you can stop the video/screenshot stream by calling:
self.disable_save_screenshots()
self.disable_video_stream()
# if you want to quit the headless mode, use:
self.quit_headless_mode()
# By the way, if you are stuck in topmost mode (window on top of everything) after quitting the headless mode, use
self.activate()
# to set the hierachy back to normal. It happens sometimes when you use your mouse or keyboard,
# while quitting the headless mode.
# The module contains some additional methods (resizing, invisibility, color substitution ... )
# Most of them are used as "helper methods" for the principal
# purpose of this package. But they also can be used on their own.
Metadata
Release files for PoorMansHeadless 0.10
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| PoorMansHeadless-0.10.tar.gz | 8.3 kB | Without provenance | Details for PoorMansHeadless-0.10.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| PoorMansHeadless-0.10-py3-none-any.whl | Python 3 | none | any | Details for PoorMansHeadless-0.10-py3-none-any.whl |
Total release size: 18.1 kB
Release files / PoorMansHeadless-0.10.tar.gz
| Download URL | PoorMansHeadless-0.10.tar.gz |
|---|---|
| Size | 8.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
197d56a398b868ee2a212437e9effdffbe1784d839a1bda4a53a3b995ab55faa
|
|
BLAKE2b-256 checksum How to use checksums |
f9dbec72884fe4abb60d92c6233c0b062ed58d81c912272e9c0c2f8f2c1f15f1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.13
|
Release files / PoorMansHeadless-0.10-py3-none-any.whl
| Download URL | PoorMansHeadless-0.10-py3-none-any.whl |
|---|---|
| Size | 9.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d316f1804c351bc21271a55e91f058517733a3e1b38a8237b5d62e6e63135ff8
|
|
BLAKE2b-256 checksum How to use checksums |
89a7fb247cc3ddba423ad8f6ce28aa813df1baae5355fbda54581f1a7011215e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.13
|
Security for PoorMansHeadless 0.10
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.