From 375e3d4ebdd1c65b980f5c3da8b81d13f0f9683b Mon Sep 17 00:00:00 2001 From: Michael Mintz Date: Thu, 22 Oct 2020 09:29:27 -0400 Subject: [PATCH] Add cmd option "--disable-ws". (Chrome Web Security) --- examples/raw_parameter_script.py | 1 + seleniumbase/fixtures/base_case.py | 3 +++ seleniumbase/plugins/pytest_plugin.py | 12 +++++++++++- seleniumbase/plugins/selenium_plugin.py | 15 +++++++++++++-- 4 files changed, 28 insertions(+), 3 deletions(-) diff --git a/examples/raw_parameter_script.py b/examples/raw_parameter_script.py index 5e3095f8..bd831e18 100755 --- a/examples/raw_parameter_script.py +++ b/examples/raw_parameter_script.py @@ -47,6 +47,7 @@ except (ImportError, ValueError): sb.log_path = "latest_logs/" sb.archive_logs = False sb.disable_csp = False + sb.disable_ws = False sb.enable_ws = False sb.enable_sync = False sb.use_auto_ext = False diff --git a/seleniumbase/fixtures/base_case.py b/seleniumbase/fixtures/base_case.py index 776823c1..68bd6935 100755 --- a/seleniumbase/fixtures/base_case.py +++ b/seleniumbase/fixtures/base_case.py @@ -6229,7 +6229,10 @@ class BaseCase(unittest.TestCase): self.block_images = sb_config.block_images self.verify_delay = sb_config.verify_delay self.disable_csp = sb_config.disable_csp + self.disable_ws = sb_config.disable_ws self.enable_ws = sb_config.enable_ws + if not self.disable_ws: + self.enable_ws = True self.enable_sync = sb_config.enable_sync self.use_auto_ext = sb_config.use_auto_ext self.no_sandbox = sb_config.no_sandbox diff --git a/seleniumbase/plugins/pytest_plugin.py b/seleniumbase/plugins/pytest_plugin.py index d730e112..6325c353 100644 --- a/seleniumbase/plugins/pytest_plugin.py +++ b/seleniumbase/plugins/pytest_plugin.py @@ -48,7 +48,8 @@ def pytest_addoption(parser): --block-images (Block images from loading during tests.) --verify-delay=SECONDS (The delay before MasterQA verification checks.) --disable-csp (Disable the Content Security Policy of websites.) - --enable-ws (Enable Web Security on Chrome.) + --disable-ws (Disable Web Security on Chromium-based browsers.) + --enable-ws (Enable Web Security on Chromium-based browsers.) --enable-sync (Enable "Chrome Sync".) --use-auto-ext (Use Chrome's automation extension.) --swiftshader (Use Chrome's "--use-gl=swiftshader" feature.) @@ -376,6 +377,12 @@ def pytest_addoption(parser): libraries for various testing actions. Setting this to True (--disable-csp) overrides the value set in seleniumbase/config/settings.py""") + parser.addoption('--disable_ws', '--disable-ws', '--disable-web-security', + action="store_true", + dest='disable_ws', + default=False, + help="""Using this disables the "Web Security" feature of + Chrome and Chromium-based browsers such as Edge.""") parser.addoption('--enable_ws', '--enable-ws', '--enable-web-security', action="store_true", dest='enable_ws', @@ -523,7 +530,10 @@ def pytest_configure(config): sb_config.block_images = config.getoption('block_images') sb_config.verify_delay = config.getoption('verify_delay') sb_config.disable_csp = config.getoption('disable_csp') + sb_config.disable_ws = config.getoption('disable_ws') sb_config.enable_ws = config.getoption('enable_ws') + if not sb_config.disable_ws: + sb_config.enable_ws = True sb_config.enable_sync = config.getoption('enable_sync') sb_config.use_auto_ext = config.getoption('use_auto_ext') sb_config.no_sandbox = config.getoption('no_sandbox') diff --git a/seleniumbase/plugins/selenium_plugin.py b/seleniumbase/plugins/selenium_plugin.py index e58577d4..9d662d26 100755 --- a/seleniumbase/plugins/selenium_plugin.py +++ b/seleniumbase/plugins/selenium_plugin.py @@ -37,8 +37,9 @@ class SeleniumBrowser(Plugin): --ad-block (Block some types of display ads after page loads.) --block-images (Block images from loading during tests.) --verify-delay=SECONDS (The delay before MasterQA verification checks.) - --disable-csp (This disables the Content Security Policy of websites.) - --enable-ws (Enable Web Security on Chrome.) + --disable-csp (Disable the Content Security Policy of websites.) + --disable-ws (Disable Web Security on Chromium-based browsers.) + --enable-ws (Enable Web Security on Chromium-based browsers.) --enable-sync (Enable "Chrome Sync".) --use-auto-ext (Use Chrome's automation extension.) --swiftshader (Use Chrome's "--use-gl=swiftshader" feature.) @@ -280,6 +281,13 @@ class SeleniumBrowser(Plugin): libraries for various testing actions. Setting this to True (--disable-csp) overrides the value set in seleniumbase/config/settings.py""") + parser.add_option( + '--disable_ws', '--disable-ws', '--disable-web-security', + action="store_true", + dest='disable_ws', + default=False, + help="""Using this disables the "Web Security" feature of + Chrome and Chromium-based browsers such as Edge.""") parser.add_option( '--enable_ws', '--enable-ws', '--enable-web-security', action="store_true", @@ -407,7 +415,10 @@ class SeleniumBrowser(Plugin): test.test.block_images = self.options.block_images test.test.verify_delay = self.options.verify_delay # MasterQA test.test.disable_csp = self.options.disable_csp + test.test.disable_ws = self.options.disable_ws test.test.enable_ws = self.options.enable_ws + if not self.options.disable_ws: + test.test.enable_ws = True test.test.enable_sync = self.options.enable_sync test.test.use_auto_ext = self.options.use_auto_ext test.test.no_sandbox = self.options.no_sandbox