Commit Graph

165 Commits

Author SHA1 Message Date
kaliiiiiiiiiii 2170559284
Update __init__.py 2023-09-10 09:34:47 +02:00
kaliiiiiiiiiii 8b1e5beff2
Merge pull request #1 from ultrafunkamsterdam/master
sync
2023-09-10 09:27:35 +02:00
Leon cea80717c5
3.5.3
Sorry for not getting earlier at this, my pc had a complete meltdown, m2, and gpu both dead.
picking up a new one this afternoon.

thanks to @jdholtz :

This PR adds support for downloading Chromedriver versions 115+. This is necessary due to the Chromium team's change to Chromedriver's release process (see here).

If the version_main is 114 or older, the Chromedriver will still be downloaded using LATEST_RELEASE_{version}. If the version_main is specified and is 115+, the /latest-versions-per-milestone-with-downloads.json from the new JSON endpoint is used and the version is selected from the corresponding milestone. Last, if the version_main is not specified, the /last-known-good-versions-with-downloads.json endpoint is used to fetch the latest stable version.

In contrast with #1427, this PR uses the new JSON endpoints instead of reverting back to old versions if the LATEST_RELEASE endpoint isn't found (causing version discrepancy errors).

I also added compatibility for installing x86 and arm64 for Mac separately since the platform names changed for the new endpoints. However, I have only tested on Linux and Windows so it would be great if someone could test on Mac (x86 and ARM) It has been tested on Linux, Windows, and Mac with success. The Chromedriver doesn't work on ARM devices when downloading the ARM chromedriver, but it seems to work fine with the x64 version (possibly with Rosetta installed).

This also allows for users to download the Dev and Beta versions (currently 117 and 118) if they specify it using version_main.
2023-08-25 11:57:31 +02:00
jdholtz 29551bd279
Remove ARM specification for Macs
Apparently the x64 version works on ARM devices with Mac, so the
platform now just chooses the correct platform name based on the
Chromedriver version requested
2023-08-16 22:14:46 -05:00
jdholtz 1ef8e8cead
Fix reference to is_old_chromedriver when setting platform name 2023-08-16 21:18:21 -05:00
jdholtz 0ae871fed3
Fix architecture checks for Mac devices 2023-08-16 20:43:16 -05:00
jdholtz f91b7d86bc
Extract all contents from zip file when downloading Chromedriver
Extracting just one file that was in a directory caused an error on
Windows. Extracting all fixes this issue.
2023-08-16 11:05:49 -05:00
jdholtz 9102a51636
Set exe name before using it 2023-08-16 08:09:01 -05:00
jdholtz 25877fd95a
Add support for Chromedriver versions 115+ 2023-08-16 07:42:07 -05:00
unknown 44c5ea7127 3.5.2 - Minor changes and fixes
* removed search paths for Chrome Canary and Chrome Beta from find_chrome_executable()
    since chromedriver is always behind schedule so that means a driver for newer versions than current main could not be found and raises Exception.

* Changed/Fixed wrong binary version caused by patcher.
  Due to multi-threading people and a mistake fromy my side,
  the driver binary currently on disk was always used instead of getting new ones. even if you did not use multithreading.
  so even outdated binaries where kept!
  for multithreading people, it now only keeps the most recent binary and throws away others.
  for normal people, you will get the binary you deserve ;)

* Added more descriptive exceptions when Chrome binary could not be found origin
  no connection could be made to Chrome.

* some stuff i forgot
2023-08-09 19:55:16 +02:00
Leon 1f3d410763
Merge pull request #1440 from ultrafunkamsterdam/ultrafunkamsterdam-patch-1-1
version bump
2023-08-08 01:03:09 +02:00
Leon a0712f87cb
Update __init__.py 2023-08-08 01:01:22 +02:00
Leon f3a8a62908
Update patcher.py 2023-08-08 01:00:07 +02:00
Leon 8049384e5a
Update __init__.py 2023-08-08 00:56:49 +02:00
Leon 47234b0b13
update patcher, so it does not use older chromedriver binary. 2023-08-08 00:55:40 +02:00
kaliiiiiiiiiii f1e9ae8b14
Merge branch 'master' into master 2023-06-25 14:51:49 +02:00
UltrafunkAmsterdam 2b035b4ea1 compatible with selenium 4.10.
also removed service_args, service_creationflags, service_log_path from constructor. added find_elements_recursive helper function
2023-06-12 11:30:57 +02:00
kaliiiiiiiiiii ac068c0d29
Merge branch 'master' into master 2023-06-07 07:08:33 +02:00
Leon 46b000ae21
Update __init__.py 2023-06-02 23:04:09 +02:00
Leon 874cf2852b
Update __init__.py 2023-06-02 22:44:05 +02:00
Leon 1a1ba7350b
Update __init__.py 2023-06-02 22:42:43 +02:00
Leon 5225881799
Update __init__.py 2023-06-02 22:34:33 +02:00
unknown 6eab5577f1 3.4.7 - added 'more' compatibility for multi thtreads / processing using Chrome(user_multi_procs=True) => ensure you have at least 1 undetected_chromedriver binary in the roaming appdata/undetected_chromedriver before using 2023-05-09 22:18:22 +02:00
unknown e55104be8d added more compatibility for multi thtreads / processing using Chrome(user_multi_procs=True) => ensure you have at least 1 undetected_chromedriver in the roaming appdata/undetected_chromedriver 2023-05-09 22:08:53 +02:00
kaliiiiiiiiiii 9d34cada75
Update __init__.py
Fix missed lines
2023-04-24 16:42:12 +02:00
kaliiiiiiiiiii e7933f0bfe
Update __init__.py
Keep `--window-size` argument of specified
2023-04-11 13:10:18 +02:00
UltrafunkAmsterdam bf7dcf8b57 3.4.6 2023-02-10 19:29:02 +01:00
UltrafunkAmsterdam ca5fe635b9 patch referenced before assignment 2023-02-10 19:19:10 +01:00
UltrafunkAmsterdam 5b636cb768 3.4.5
damn versioning

    **patch to fix headless mode**
    currently headless undetected:
    https://i.imgur.com/CME9ElR.png

    (but still unsupported!)

    -https://stackoverflow.com/a/73840130/7058266
    -https://support.google.com/chrome/a/answer/7679408#hdlssMod110

    thanks @mdmintz for this info
2023-02-08 17:48:52 +01:00
UltrafunkAmsterdam 6e471aaac2 PATCH WEDNESDAY
3.4.5
damn versioning

    **patch to fix headless mode**

    -https://stackoverflow.com/a/73840130/7058266
    -https://support.google.com/chrome/a/answer/7679408#hdlssMod110

    thanks @mdmintz for this info
2023-02-08 17:32:16 +01:00
UltrafunkAmsterdam 96abd37cca PATCH WEDNESDAY
4.4.5

    **patch to fix headless mode**

    -https://stackoverflow.com/a/73840130/7058266
    -https://support.google.com/chrome/a/answer/7679408#hdlssMod110

    thanks @mdmintz for this info
2023-02-08 17:18:28 +01:00
UltrafunkAmsterdam 93adbcf0ef 4.4.5
**patch to fix headless mode**

-https://stackoverflow.com/a/73840130/7058266
-https://support.google.com/chrome/a/answer/7679408#hdlssMod110
thanks @mdmintz for the info
2023-02-08 17:08:44 +01:00
UltrafunkAmsterdam d3fe33fceb 3.4.4 - Fixed 2023-02-08 01:27:50 +01:00
UltrafunkAmsterdam 305803ca95 fix for linux find_elements: SyntaxError: missing ) after argument list 2023-02-05 18:37:28 +01:00
UltrafunkAmsterdam 8baa77352f linux unlink bug fix + version bump 2023-02-05 15:36:31 +01:00
UltrafunkAmsterdam 92192e8c5e fix for #1035 + version bump 2023-02-05 15:15:12 +01:00
UltrafunkAmsterdam 166438cde2 fix for #1035 2023-02-05 15:14:39 +01:00
UltrafunkAmsterdam c12fcfc0a8 Oh yes, do wanna rockin' with the best
--------------------

https://youtu.be/kMjhrh_XDWk?t=48

--------------------

Big update! be careful as it -potentially- could break your code.

- rewritten the anti-detection mechanism
  instead of removing and renaming variables, we just keep them, but prevent them from being injected in the first place

- rewritten the file naming, to prevent ending up with 1000 of {randomstring}_chromedriver.exe 's
  instead it is just called undetected_chromedriver.exe

- cleanup
  removed compat,v2 files and tests folder
2023-02-04 22:02:46 +01:00
UltrafunkAmsterdam 18d9f47978 3.2.1 - minor fixes 2022-12-29 11:53:24 +01:00
Leon e0997e060f
Update __init__.py 2022-12-29 11:48:09 +01:00
Ivan Reznikov 88f70fea07
minor typing change to handle list typing 2022-12-29 02:47:58 +04:00
UltrafunkAmsterdam 3bce88f82c 3.2.0 2022-12-28 15:46:52 +01:00
UltrafunkAmsterdam 07abe814a6 more refactoring; fix bug that browser stays opened when script exits 2022-12-26 01:48:01 +01:00
Leon 5df8e00a5a
Merge pull request #643
Set a specific data_path for Patcher if the environment is AWS Lambda
2022-12-17 19:02:16 +00:00
Leon 4db5d9338b
Update example.py
added a variable TAKE_IT_EASY which defaults to True. Since it is a demo it should be 'followable'. if set to False, it won't pause in between and it just flashes by.
2022-12-14 21:34:45 +00:00
Leon ab6c54df6f
re-fix children so it returns a list 2022-12-14 21:22:22 +00:00
UltrafunkAmsterdam 1e8e83f6ae refactoring 2022-11-29 18:26:11 +01:00
UltrafunkAmsterdam e33312535e update readme. ensure children(recursive=True) returns a list 2022-11-29 18:19:28 +01:00
UltrafunkAmsterdam e4d75cbdd0 Merge branch '3.2.0' of http://github.com/ultrafunkamsterdam/undetected-chromedriver into 3.2.0 2022-11-29 18:11:50 +01:00
Leon cb3d91064a
Update example.py 2022-11-29 14:25:42 +01:00