diff --git a/examples/cdp_mode/raw_cdp_nike.py b/examples/cdp_mode/raw_cdp_nike.py index e2b16298070..8bf3b3ed934 100644 --- a/examples/cdp_mode/raw_cdp_nike.py +++ b/examples/cdp_mode/raw_cdp_nike.py @@ -4,7 +4,7 @@ sb = sb_cdp.Chrome(url) sb.click('div[data-testid="user-tools-container"]') sb.sleep(1) -search = "Road Racing Shoes" +search = "Pegasus" sb.press_keys('input[type="search"]', search) sb.sleep(4) elements = sb.select_all('ul[data-testid*="products"] figure .details') diff --git a/examples/cdp_mode/raw_chatgpt.py b/examples/cdp_mode/raw_chatgpt.py index 76ba7c5775c..cace8953506 100644 --- a/examples/cdp_mode/raw_chatgpt.py +++ b/examples/cdp_mode/raw_chatgpt.py @@ -6,6 +6,7 @@ sb.activate_cdp_mode(url) sb.sleep(1) sb.click_if_visible('button[aria-label="Close dialog"]') + sb.click_if_visible('button[data-testid="close-button"]') query = "Compare Playwright to SeleniumBase in under 178 words" sb.press_keys("#prompt-textarea", query) sb.click('button[data-testid="send-button"]') diff --git a/examples/cdp_mode/raw_pixelscan.py b/examples/cdp_mode/raw_pixelscan.py index c0fefb50cb4..ce328ad50c9 100644 --- a/examples/cdp_mode/raw_pixelscan.py +++ b/examples/cdp_mode/raw_pixelscan.py @@ -1,21 +1,16 @@ from seleniumbase import SB with SB(uc=True, incognito=True, test=True) as sb: - sb.activate_cdp_mode("https://pixelscan.net/") - sb.sleep(2) - sb.click('button[class*="startButton"]') - sb.sleep(6) + url = "https://pixelscan.net/fingerprint-check" + sb.activate_cdp_mode(url) + sb.sleep(3) sb.remove_elements(".bg-bannerBg") # Remove top banner sb.remove_elements("pxlscn-ad1") # Remove an ad banner sb.remove_elements("pxlscn-ad2") # Remove an ad banner sb.remove_elements("jdiv") # Remove chat widgets - sb.sleep(14) not_masking_text = "You are not masking your fingerprint" - sb.assert_text( - not_masking_text, - "pxlscn-fingerprint-masking", - timeout=20, - ) + fp_selector = "pxlscn-fingerprint-masking" + sb.assert_text(not_masking_text, fp_selector, timeout=15) no_automation_detected = "No automation framework detected" sb.assert_text(no_automation_detected, "pxlscn-bot-detection") consistent_selector = 'div.bg-consistentBg [alt="Good"]' diff --git a/examples/raw_pixelscan.py b/examples/raw_pixelscan.py index df8883a2d45..0f7ee0d6f5b 100644 --- a/examples/raw_pixelscan.py +++ b/examples/raw_pixelscan.py @@ -1,20 +1,18 @@ from seleniumbase import SB with SB(uc=True, incognito=True, test=True) as sb: - sb.driver.uc_open_with_reconnect("https://pixelscan.net/", 2) - sb.uc_click('button[class*="startButton"]', reconnect_time=20) + url = "https://pixelscan.net/fingerprint-check" + sb.driver.uc_open_with_reconnect(url, 7) sb.remove_elements(".bg-bannerBg") # Remove top banner sb.remove_elements("pxlscn-ad1") # Remove an ad banner sb.remove_elements("pxlscn-ad2") # Remove an ad banner sb.remove_elements("jdiv") # Remove chat widgets - no_automation_detected = "No automation framework detected" - sb.assert_text( - no_automation_detected, - "pxlscn-bot-detection", - timeout=20, - ) not_masking_text = "You are not masking your fingerprint" - sb.assert_text(not_masking_text, "pxlscn-fingerprint-masking") + fp_selector = "pxlscn-fingerprint-masking" + sb.assert_text(not_masking_text, fp_selector, timeout=15) + no_automation_detected = "No automation framework detected" + sb.assert_text(no_automation_detected, "pxlscn-bot-detection") + consistent_selector = 'div.bg-consistentBg [alt="Good"]' consistent_selector = 'div.bg-consistentBg [alt="Good"]' sb.highlight(consistent_selector, loops=8, scroll=False) sb.sleep(1) diff --git a/requirements.txt b/requirements.txt index 8937da3e907..7819c8a0dc3 100755 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ pip>=25.0.1;python_version<"3.9" -pip>=25.1;python_version>="3.9" +pip>=25.1.1;python_version>="3.9" packaging>=25.0 setuptools~=70.2;python_version<"3.10" setuptools>=80.1.0;python_version>="3.10" @@ -32,7 +32,7 @@ tabcompleter>=1.4.0 pdbp>=1.7.0 idna==3.10 chardet==5.2.0 -charset-normalizer==3.4.1 +charset-normalizer>=3.4.2,<4 urllib3>=1.26.20,<2;python_version<"3.10" urllib3>=1.26.20,<2.5.0;python_version>="3.10" requests==2.32.3 @@ -45,7 +45,7 @@ trio-websocket==0.12.2 wsproto==1.2.0 websocket-client==1.8.0 selenium==4.27.1;python_version<"3.9" -selenium==4.31.0;python_version>="3.9" +selenium==4.32.0;python_version>="3.9" cssselect==1.2.0;python_version<"3.9" cssselect==1.3.0;python_version>="3.9" sortedcontainers==2.4.0 diff --git a/seleniumbase/__version__.py b/seleniumbase/__version__.py index 47e541ebfb1..bbfb33bc644 100755 --- a/seleniumbase/__version__.py +++ b/seleniumbase/__version__.py @@ -1,2 +1,2 @@ # seleniumbase package -__version__ = "4.37.12" +__version__ = "4.38.0" diff --git a/setup.py b/setup.py index 32778b3fa40..6181e7a50dc 100755 --- a/setup.py +++ b/setup.py @@ -148,7 +148,7 @@ python_requires=">=3.8", install_requires=[ 'pip>=25.0.1;python_version<"3.9"', - 'pip>=25.1;python_version>="3.9"', + 'pip>=25.1.1;python_version>="3.9"', 'packaging>=25.0', 'setuptools~=70.2;python_version<"3.10"', # Newer ones had issues 'setuptools>=80.1.0;python_version>="3.10"', @@ -181,7 +181,7 @@ "pdbp>=1.7.0", "idna==3.10", 'chardet==5.2.0', - 'charset-normalizer==3.4.1', + 'charset-normalizer>=3.4.2,<4', 'urllib3>=1.26.20,<2;python_version<"3.10"', 'urllib3>=1.26.20,<2.5.0;python_version>="3.10"', 'requests==2.32.3', @@ -194,7 +194,7 @@ 'wsproto==1.2.0', 'websocket-client==1.8.0', 'selenium==4.27.1;python_version<"3.9"', - 'selenium==4.31.0;python_version>="3.9"', + 'selenium==4.32.0;python_version>="3.9"', 'cssselect==1.2.0;python_version<"3.9"', 'cssselect==1.3.0;python_version>="3.9"', "sortedcontainers==2.4.0", @@ -264,7 +264,7 @@ 'pdfminer.six==20250324;python_version<"3.9"', 'pdfminer.six==20250416;python_version>="3.9"', 'cryptography==39.0.2;python_version<"3.9"', - 'cryptography==44.0.2;python_version>="3.9"', + 'cryptography==44.0.3;python_version>="3.9"', 'cffi==1.17.1', "pycparser==2.22", ],