Skip to main content

Make a headless window out of every window! Perfect for undetected chromedriver (Selenium) to pass bot detection in headless mode.

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

PoorMansHeadless-0.10.tar.gz (8.3 kB view details)

Uploaded Source

Built Distribution

PoorMansHeadless-0.10-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

Details for the file PoorMansHeadless-0.10.tar.gz.

File metadata

  • Download URL: PoorMansHeadless-0.10.tar.gz
  • Upload date:
  • Size: 8.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for PoorMansHeadless-0.10.tar.gz
Algorithm Hash digest
SHA256 197d56a398b868ee2a212437e9effdffbe1784d839a1bda4a53a3b995ab55faa
MD5 286a9ed75337c426d24f084604bc10fc
BLAKE2b-256 f9dbec72884fe4abb60d92c6233c0b062ed58d81c912272e9c0c2f8f2c1f15f1

See more details on using hashes here.

File details

Details for the file PoorMansHeadless-0.10-py3-none-any.whl.

File metadata

File hashes

Hashes for PoorMansHeadless-0.10-py3-none-any.whl
Algorithm Hash digest
SHA256 d316f1804c351bc21271a55e91f058517733a3e1b38a8237b5d62e6e63135ff8
MD5 26491ed05e7f7c3f6d0bc61e01b654f4
BLAKE2b-256 89a7fb247cc3ddba423ad8f6ce28aa813df1baae5355fbda54581f1a7011215e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page