diff --git a/.gitignore b/.gitignore index 5d854999..2892f773 100644 --- a/.gitignore +++ b/.gitignore @@ -82,6 +82,13 @@ msedgedriver.exe operadriver.exe uc_driver.exe +# Chrome for Testing Zip Files +chrome-mac-arm64.zip +chrome-mac-x64.zip +chrome-linux64.zip +chrome-win64.zip +chrome-win32.zip + # Chrome for Testing folders chrome-mac-arm64 chrome-mac-x64 @@ -89,6 +96,13 @@ chrome-linux64 chrome-win64 chrome-win32 +# Chrome-Headless-Shell Zip Files +chrome-headless-shell-mac-arm64.zip +chrome-headless-shell-mac-x64.zip +chrome-headless-shell-linux64.zip +chrome-headless-shell-win64.zip +chrome-headless-shell-win32.zip + # Chrome-Headless-Shell folders chrome-headless-shell-mac-arm64 chrome-headless-shell-mac-x64 diff --git a/examples/cdp_mode/raw_chatgpt.py b/examples/cdp_mode/raw_chatgpt.py new file mode 100644 index 00000000..2d0bfb32 --- /dev/null +++ b/examples/cdp_mode/raw_chatgpt.py @@ -0,0 +1,13 @@ +from seleniumbase import SB + +with SB(uc=True, test=True, ad_block=True) as sb: + url = "https://chatgpt.com/" + sb.activate_cdp_mode(url) + query = "Compare Playwright to SeleniumBase in under 178 words" + sb.type("#prompt-textarea", query) + sb.click('button[data-testid="send-button"]') + print('Input for ChatGPT:\n"%s"' % query) + sb.sleep(12) + chat = sb.find_element('[data-message-author-role="assistant"] .markdown') + soup = sb.get_beautiful_soup(chat.get_html()).get_text("\n").strip() + print("Response from ChatGPT:\n%s" % soup.replace("\n:", ":")) diff --git a/mkdocs_build/requirements.txt b/mkdocs_build/requirements.txt index 96a64770..3ed9e67e 100644 --- a/mkdocs_build/requirements.txt +++ b/mkdocs_build/requirements.txt @@ -3,7 +3,7 @@ regex>=2024.11.6 pymdown-extensions>=10.14.1 -pipdeptree>=2.24.0 +pipdeptree>=2.25.0 python-dateutil>=2.8.2 Markdown==3.7 click==8.1.8 diff --git a/requirements.txt b/requirements.txt index 91f767bd..c183efc6 100755 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -pip>=24.3.1 +pip>=25.0 packaging>=24.2 setuptools~=70.2;python_version<"3.10" setuptools>=75.8.0;python_version>="3.10" diff --git a/seleniumbase/__version__.py b/seleniumbase/__version__.py index 6c9b3c39..5060896c 100755 --- a/seleniumbase/__version__.py +++ b/seleniumbase/__version__.py @@ -1,2 +1,2 @@ # seleniumbase package -__version__ = "4.34.3" +__version__ = "4.34.4" diff --git a/seleniumbase/console_scripts/sb_install.py b/seleniumbase/console_scripts/sb_install.py index 5d6de44b..ae7e0b88 100644 --- a/seleniumbase/console_scripts/sb_install.py +++ b/seleniumbase/console_scripts/sb_install.py @@ -39,6 +39,7 @@ import time import tarfile import urllib3 import zipfile +from contextlib import suppress from seleniumbase.fixtures import constants from seleniumbase.fixtures import shared_utils from seleniumbase import config as sb_config @@ -1200,7 +1201,7 @@ def main(override=None, intel_for_uc=None, force_uc=None): driver_path = None driver_file = None base_path = os.sep.join(zip_file_path.split(os.sep)[:-1]) - folder_name = contents[0].split(os.sep)[0] + folder_name = contents[0].split("/")[0] folder_path = os.path.join(base_path, folder_name) if IS_MAC or IS_LINUX: if ( @@ -1221,12 +1222,14 @@ def main(override=None, intel_for_uc=None, force_uc=None): zip_file_path, "-DestinationPath", downloads_folder, + "-Force", ] ) else: zip_ref.extractall(downloads_folder) zip_ref.close() - os.remove(zip_file_path) + with suppress(Exception): + os.remove(zip_file_path) log_d("%sUnzip Complete!%s\n" % (c2, cr)) pr_base_path = c3 + base_path + cr pr_sep = c3 + os.sep + cr @@ -1240,7 +1243,7 @@ def main(override=None, intel_for_uc=None, force_uc=None): driver_path = None driver_file = None base_path = os.sep.join(zip_file_path.split(os.sep)[:-1]) - folder_name = contents[0].split(os.sep)[0] + folder_name = contents[0].split("/")[0] folder_path = os.path.join(base_path, folder_name) if IS_MAC or IS_LINUX: if ( @@ -1261,12 +1264,14 @@ def main(override=None, intel_for_uc=None, force_uc=None): zip_file_path, "-DestinationPath", downloads_folder, + "-Force", ] ) else: zip_ref.extractall(downloads_folder) zip_ref.close() - os.remove(zip_file_path) + with suppress(Exception): + os.remove(zip_file_path) log_d("%sUnzip Complete!%s\n" % (c2, cr)) pr_base_path = c3 + base_path + cr pr_sep = c3 + os.sep + cr diff --git a/seleniumbase/console_scripts/sb_mkdir.py b/seleniumbase/console_scripts/sb_mkdir.py index 863a4979..d4d13c62 100644 --- a/seleniumbase/console_scripts/sb_mkdir.py +++ b/seleniumbase/console_scripts/sb_mkdir.py @@ -247,6 +247,27 @@ def main(): data.append("msedgedriver.exe") data.append("operadriver.exe") data.append("uc_driver.exe") + data.append("chrome-mac-arm64.zip") + data.append("chrome-mac-x64.zip") + data.append("chrome-linux64.zip") + data.append("chrome-win64.zip") + data.append("chrome-win32.zip") + data.append("chrome-mac-arm64") + data.append("chrome-mac-x64") + data.append("chrome-linux64") + data.append("chrome-win64") + data.append("chrome-win32") + data.append("chrome-headless-shell-mac-arm64.zip") + data.append("chrome-headless-shell-mac-x64.zip") + data.append("chrome-headless-shell-linux64.zip") + data.append("chrome-headless-shell-win64.zip") + data.append("chrome-headless-shell-win32.zip") + data.append("chrome-headless-shell-mac-arm64") + data.append("chrome-headless-shell-mac-x64") + data.append("chrome-headless-shell-linux64") + data.append("chrome-headless-shell-win64") + data.append("chrome-headless-shell-win32") + data.append("libc++.dylib") data.append("logs") data.append("latest_logs") data.append("log_archives") diff --git a/setup.py b/setup.py index 4b692baf..7afaba97 100755 --- a/setup.py +++ b/setup.py @@ -147,7 +147,7 @@ setup( ], python_requires=">=3.8", install_requires=[ - 'pip>=24.3.1', + 'pip>=25.0', 'packaging>=24.2', 'setuptools~=70.2;python_version<"3.10"', # Newer ones had issues 'setuptools>=75.8.0;python_version>="3.10"',