undetected-chromedriver/undetected_chromedriver
UltrafunkAmsterdam 7c25fff16e 3.1.5r2
changed the way how patcher works (for those using multiple sessions/processes).

    when not specifying a executable_path (the default, and recommended!), the filename
    gets randomized to <somehex>_chromedriver[.exe]. this should fix the issue for multiprocessing
    (although Chrome/driver itself has restrictions in this as well, see it using processhacker).
    As i told before, webdriver is a purely io-based operation which only sends and pulls data. multiprocessing/threading isn't going to help much. You'd better use asyncio.)

find_chrome_executable:
    added google-chrome-stable to the list, as some distro's have this name.

advanced_webelements:  bool, optional, default: False
        makes it easier to recognize elements like you know them from html/browser inspection, especially when working in an interactive environment

        default webelement repr:
        <selenium.webdriver.remote.webelement.WebElement (session="85ff0f671512fa535630e71ee951b1f2", element="6357cb55-92c3-4c0f-9416-b174f9c1b8c4")>

        advanced webelement repr
        <WebElement(<a class="mobile-show-inline-block mc-update-infos init-ok" href="#" id="main-cat-switcher-mobile">)>

    note: when retrieving large amounts of elements ( example: find_elements_by_tag("*") ) and **print** them, it does take a little more time for all the repr's to fetch

Chrome() parameters

    driver_executable_path=None
     ( = executable_path )
    if you really need to specify your own chromedriver binary.

    (don't log issues when you are not using the default. the downloading per session happens for a reason. remember this is a detection-focussed fork)

    browser_executable_path=None
        ( = browser binary path )
    to specify your browser in case you use exotic locations instead of the more default install folders

    advanced_elements=False
        if set to True, webelements get a nicer REPR showing. this is very convenient when working
        interactively (like ipython for example).

        <WebElement(<a class="mobile-show-inline-block mc-update-infos init-ok" href="#" id="main-cat-switcher-mobile">)>

        instead of

        <selenium.webdriver.remote.webelement.WebElement (session="85ff0f671512fa535630e71ee951b1f2", element="6357cb55-92c3-4c0f-9416-b174f9c1b8c4")>
2022-03-14 00:05:27 +01:00
..
tests/v2 3.1.0rc1 2021-12-16 05:53:41 +01:00
__init__.py 3.1.5r2 2022-03-14 00:05:27 +01:00
_compat.py 3.1.0rc1 2021-12-16 05:53:41 +01:00
cdp.py 3.1.0rc1 2021-12-16 05:53:41 +01:00
devtool.py 3.1.0rc1 2021-12-16 05:53:41 +01:00
dprocess.py 3.1.0rc1 2021-12-16 05:53:41 +01:00
options.py 3.1.0rc1 2021-12-16 05:53:41 +01:00
patcher.py 3.15 2022-03-13 23:47:57 +01:00
reactor.py 3.1.0! 2021-12-22 14:07:27 +00:00
v2.py 3.1.0! 2021-12-22 14:07:27 +00:00
webelement.py 3.1.5r2 2022-03-14 00:05:27 +01:00