diff --git a/examples/test_3d_apis.py b/examples/test_3d_apis.py new file mode 100644 index 00000000000..c0f7fdd8ce1 --- /dev/null +++ b/examples/test_3d_apis.py @@ -0,0 +1,17 @@ +from seleniumbase import BaseCase +BaseCase.main(__name__, __file__) + + +class ThreeJSTests(BaseCase): + def test_animation(self): + if self.headless: + self.open_if_not_url("about:blank") + self.skip("Skip this test in headless mode!") + if self.is_chromium() and not self.enable_3d_apis: + self.get_new_driver(enable_3d_apis=True) # --enable-3d-apis + url = "https://threejs.org/examples/#webgl_animation_skinning_morph" + self.open(url) + self.switch_to_frame("iframe#viewer") + self.sleep(0.8) + self.click('button:contains("Wave")') + self.sleep(3) diff --git a/requirements.txt b/requirements.txt index d1ef0b78b46..9d5efa89dfc 100755 --- a/requirements.txt +++ b/requirements.txt @@ -9,6 +9,7 @@ filelock>=3.12.2;python_version<"3.8" filelock>=3.13.1;python_version>="3.8" platformdirs>=4.0.0;python_version<"3.8" platformdirs>=4.1.0;python_version>="3.8" +typing-extensions>=4.9.0;python_version>="3.8" parse>=1.20.0 parse-type>=0.6.2 pyyaml>=6.0.1 diff --git a/seleniumbase/__version__.py b/seleniumbase/__version__.py index 3fda6a0ead2..2d11daa2338 100755 --- a/seleniumbase/__version__.py +++ b/seleniumbase/__version__.py @@ -1,2 +1,2 @@ # seleniumbase package -__version__ = "4.23.0" +__version__ = "4.23.1" diff --git a/seleniumbase/core/browser_launcher.py b/seleniumbase/core/browser_launcher.py index 01ef9cb3174..218bebcda7a 100644 --- a/seleniumbase/core/browser_launcher.py +++ b/seleniumbase/core/browser_launcher.py @@ -1030,7 +1030,10 @@ def _set_chrome_options( if swiftshader: chrome_options.add_argument("--use-gl=angle") chrome_options.add_argument("--use-angle=swiftshader-webgl") - elif not is_using_uc(undetectable, browser_name): + elif ( + not is_using_uc(undetectable, browser_name) + and not enable_3d_apis + ): chrome_options.add_argument("--disable-gpu") if not IS_LINUX and is_using_uc(undetectable, browser_name): chrome_options.add_argument("--disable-dev-shm-usage") @@ -2698,7 +2701,10 @@ def get_local_driver( if swiftshader: edge_options.add_argument("--use-gl=angle") edge_options.add_argument("--use-angle=swiftshader-webgl") - else: + elif ( + not is_using_uc(undetectable, browser_name) + and not enable_3d_apis + ): edge_options.add_argument("--disable-gpu") if IS_LINUX: edge_options.add_argument("--disable-dev-shm-usage") diff --git a/setup.py b/setup.py index f96aabeeba9..9f8393e8519 100755 --- a/setup.py +++ b/setup.py @@ -142,6 +142,7 @@ 'filelock>=3.13.1;python_version>="3.8"', 'platformdirs>=4.0.0;python_version<"3.8"', 'platformdirs>=4.1.0;python_version>="3.8"', + 'typing-extensions>=4.9.0;python_version>="3.8"', 'parse>=1.20.0', 'parse-type>=0.6.2', 'pyyaml>=6.0.1', @@ -233,7 +234,7 @@ 'pdfminer.six==20221105;python_version<"3.8"', 'pdfminer.six==20231228;python_version>="3.8"', 'cryptography==39.0.2;python_version<"3.9"', - 'cryptography==42.0.0;python_version>="3.9"', + 'cryptography==42.0.1;python_version>="3.9"', 'cffi==1.15.1;python_version<"3.8"', 'cffi==1.16.0;python_version>="3.8"', "pycparser==2.21",