[py] Deprecate find_element(s)_by_* calls

Cr-Mirrored-From: https://chromium.googlesource.com/external/github.com/SeleniumHQ/selenium
Cr-Mirrored-Commit: 8b2bab56187b026efa5b91dda1a3d4e06f36c451
diff --git a/BUILD.bazel b/BUILD.bazel
index 554e9b4..48e995f 100644
--- a/BUILD.bazel
+++ b/BUILD.bazel
@@ -161,52 +161,6 @@
 )
 
 py_test_suite(
-    name = "test-edge",
-    size = "large",
-    srcs = glob([
-        "test/selenium/webdriver/edge/**/*.py",
-        "test/selenium/webdriver/common/**/*.py",
-        "test/selenium/webdriver/support/**/*.py",
-    ]),
-    args = [
-        "--instafail",
-        "--driver=Edge",
-    ],
-    tags = [
-        "no-sandbox",
-    ],
-    deps = [
-        ":init-tree",
-        ":selenium",
-        ":webserver",
-        "//third_party/py:pytest",
-    ],
-)
-
-py_test_suite(
-    name = "test-edge-chromium",
-    size = "large",
-    srcs = glob([
-        "test/selenium/webdriver/edge/**/*.py",
-        "test/selenium/webdriver/common/**/*.py",
-        "test/selenium/webdriver/support/**/*.py",
-    ]),
-    args = [
-        "--instafail",
-        "--driver=ChromiumEdge",
-    ],
-    tags = [
-        "no-sandbox",
-    ],
-    deps = [
-        ":init-tree",
-        ":selenium",
-        ":webserver",
-        "//third_party/py:pytest",
-    ],
-)
-
-py_test_suite(
     name = "test-firefox",
     size = "large",
     srcs = glob([
diff --git a/conftest.py b/conftest.py
index 1c11ddb..5090310 100644
--- a/conftest.py
+++ b/conftest.py
@@ -120,6 +120,7 @@
             options = get_options(driver_class, request.config)
         if driver_class == 'ChromiumEdge':
             options = get_options(driver_class, request.config)
+            kwargs.update({'is_legacy': False})
         if driver_path is not None:
             kwargs['executable_path'] = driver_path
         if options is not None:
@@ -135,12 +136,10 @@
     browser_args = config.option.args
     options = None
 
-    if driver_class == 'ChromiumEdge':
-        options = getattr(webdriver, 'EdgeOptions')()
-        options.use_chromium = True
-
     if browser_path or browser_args:
-        if not options:
+        if driver_class == 'ChromiumEdge':
+            options = getattr(webdriver, 'EdgeOptions')(False)
+        else:
             options = getattr(webdriver, '{}Options'.format(driver_class))()
         if driver_class == 'WebKitGTK':
             options.overlay_scrollbars_enabled = False
diff --git a/selenium/webdriver/chrome/webdriver.py b/selenium/webdriver/chrome/webdriver.py
index 2b9b04f..1529142 100644
--- a/selenium/webdriver/chrome/webdriver.py
+++ b/selenium/webdriver/chrome/webdriver.py
@@ -18,7 +18,6 @@
 from selenium.webdriver.chromium.webdriver import ChromiumDriver
 from .options import Options
 from .service import Service
-from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
 
 
 DEFAULT_PORT = 0
@@ -50,9 +49,6 @@
          - service_log_path - Deprecated: Where to log information from the driver.
          - keep_alive - Whether to configure ChromeRemoteConnection to use HTTP keep-alive.
         """
-        if executable_path != 'chromedriver':
-            warnings.warn('executable_path has been deprecated, please pass in a Service object',
-                          DeprecationWarning, stacklevel=2)
         if chrome_options:
             warnings.warn('use options instead of chrome_options',
                           DeprecationWarning, stacklevel=2)
@@ -61,8 +57,7 @@
         if service is None:
             service = Service(executable_path, port, service_args, service_log_path)
 
-        super(WebDriver, self).__init__(DesiredCapabilities.CHROME['browserName'], "goog",
-                                        port, options,
+        super(WebDriver, self).__init__(executable_path, port, options,
                                         service_args, desired_capabilities,
                                         service_log_path, service, keep_alive)
 
diff --git a/selenium/webdriver/chromium/remote_connection.py b/selenium/webdriver/chromium/remote_connection.py
index e71ae91..61f0701 100644
--- a/selenium/webdriver/chromium/remote_connection.py
+++ b/selenium/webdriver/chromium/remote_connection.py
@@ -20,15 +20,17 @@
 
 
 class ChromiumRemoteConnection(RemoteConnection):
-    def __init__(self, remote_server_addr, vendor_prefix, browser_name, keep_alive=True):
+
+    browser_name = DesiredCapabilities.CHROME['browserName']
+
+    def __init__(self, remote_server_addr, keep_alive=True):
         RemoteConnection.__init__(self, remote_server_addr, keep_alive)
-        self.browser_name = browser_name
         self._commands["launchApp"] = ('POST', '/session/$sessionId/chromium/launch_app')
         self._commands["setNetworkConditions"] = ('POST', '/session/$sessionId/chromium/network_conditions')
         self._commands["getNetworkConditions"] = ('GET', '/session/$sessionId/chromium/network_conditions')
-        self._commands['executeCdpCommand'] = ('POST', '/session/$sessionId/{}/cdp/execute'.format(vendor_prefix))
-        self._commands['getSinks'] = ('GET', '/session/$sessionId/{}/cast/get_sinks'.format(vendor_prefix))
-        self._commands['getIssueMessage'] = ('GET', '/session/$sessionId/{}/cast/get_issue_message'.format(vendor_prefix))
-        self._commands['setSinkToUse'] = ('POST', '/session/$sessionId/{}/cast/set_sink_to_use'.format(vendor_prefix))
-        self._commands['startTabMirroring'] = ('POST', '/session/$sessionId/{}/cast/start_tab_mirroring'.format(vendor_prefix))
-        self._commands['stopCasting'] = ('POST', '/session/$sessionId/{}/cast/stop_casting'.format(vendor_prefix))
+        self._commands['executeCdpCommand'] = ('POST', '/session/$sessionId/goog/cdp/execute')
+        self._commands['getSinks'] = ('GET', '/session/$sessionId/goog/cast/get_sinks')
+        self._commands['getIssueMessage'] = ('GET', '/session/$sessionId/goog/cast/get_issue_message')
+        self._commands['setSinkToUse'] = ('POST', '/session/$sessionId/goog/cast/set_sink_to_use')
+        self._commands['startTabMirroring'] = ('POST', '/session/$sessionId/goog/cast/start_tab_mirroring')
+        self._commands['stopCasting'] = ('POST', '/session/$sessionId/goog/cast/stop_casting')
diff --git a/selenium/webdriver/chromium/webdriver.py b/selenium/webdriver/chromium/webdriver.py
index a27c696..9caec27 100644
--- a/selenium/webdriver/chromium/webdriver.py
+++ b/selenium/webdriver/chromium/webdriver.py
@@ -28,8 +28,8 @@
     Controls the WebDriver instance of ChromiumDriver and allows you to drive the browser.
     """
 
-    def __init__(self, browser_name, vendor_prefix,
-                 port=DEFAULT_PORT, options=None, service_args=None,
+    def __init__(self, executable_path="chromedriver", port=DEFAULT_PORT,
+                 options=None, service_args=None,
                  desired_capabilities=None, service_log_path=DEFAULT_SERVICE_LOG_PATH,
                  service=None, keep_alive=True):
         """
@@ -37,8 +37,7 @@
         Starts the service and then creates new WebDriver instance of ChromiumDriver.
 
         :Args:
-           browser_name - Browser name used when matching capabilities.
-           vendor_prefix - Company prefix to apply to vendor-specific WebDriver extension commands.
+         - executable_path - Deprecated: path to the executable. If the default is used it assumes the executable is in the $PATH
          - port - Deprecated: port you would like the service to run, if left as 0, a free port will be found.
          - options - this takes an instance of ChromiumOptions
          - service_args - Deprecated: List of args to pass to the driver service
@@ -47,6 +46,9 @@
          - service_log_path - Deprecated: Where to log information from the driver.
          - keep_alive - Whether to configure ChromiumRemoteConnection to use HTTP keep-alive.
         """
+        if executable_path != 'chromedriver':
+            warnings.warn('executable_path has been deprecated, please pass in a Service object',
+                          DeprecationWarning, stacklevel=2)
         if desired_capabilities is not None:
             warnings.warn('desired_capabilities has been deprecated, please pass in a Service object',
                           DeprecationWarning, stacklevel=2)
@@ -79,7 +81,6 @@
                 self,
                 command_executor=ChromiumRemoteConnection(
                     remote_server_addr=self.service.service_url,
-                    browser_name=browser_name, vendor_prefix=vendor_prefix,
                     keep_alive=keep_alive),
                 desired_capabilities=desired_capabilities)
         except Exception:
diff --git a/selenium/webdriver/edge/options.py b/selenium/webdriver/edge/options.py
index f5d4144..55890da 100644
--- a/selenium/webdriver/edge/options.py
+++ b/selenium/webdriver/edge/options.py
@@ -22,42 +22,52 @@
 class Options(ChromiumOptions):
     KEY = "ms:edgeOptions"
 
-    def __init__(self):
+    def __init__(self, is_legacy=True):
         super(Options, self).__init__()
-        self._use_chromium = False
-        self._use_webview = False
+        self._is_legacy = is_legacy
+        self._custom_browser_name = None
+
+        if is_legacy:
+            self._page_load_strategy = "normal"
 
     @property
-    def use_chromium(self):
-        return self._use_chromium
+    def custom_browser_name(self):
+        return self._custom_browser_name
 
-    @use_chromium.setter
-    def use_chromium(self, value):
-        self._use_chromium = bool(value)
+    @custom_browser_name.setter
+    def custom_browser_name(self, value):
+        self._custom_browser_name = value
 
     @property
-    def use_webview(self):
-        return self._use_webview
+    def page_load_strategy(self):
+        if not self._is_legacy:
+            raise AttributeError("Page Load Strategy only exists in Legacy Mode")
 
-    @use_webview.setter
-    def use_webview(self, value):
-        self._use_webview = bool(value)
+        return self._page_load_strategy
+
+    @page_load_strategy.setter
+    def page_load_strategy(self, value):
+        if not self._is_legacy:
+            raise AttributeError("Page Load Strategy only exists in Legacy Mode")
+
+        if value not in ['normal', 'eager', 'none']:
+            raise ValueError("Page Load Strategy should be 'normal', 'eager' or 'none'.")
+        self._page_load_strategy = value
 
     def to_capabilities(self):
         """
         Creates a capabilities with all the options that have been set and
         :Returns: A dictionary with everything
         """
+        if not self._is_legacy:
+            return_caps = super(Options, self).to_capabilities()
+            if self._custom_browser_name:
+                return_caps['browserName'] = self._custom_browser_name
+            return return_caps
+
         caps = self._caps
+        caps['pageLoadStrategy'] = self._page_load_strategy
 
-        if self._use_chromium:
-            caps = super(Options, self).to_capabilities()
-            if self._use_webview:
-                caps['browserName'] = 'WebView2'
-        else:
-            caps['platform'] = 'windows'
-
-        caps['ms:edgeChromium'] = self._use_chromium
         return caps
 
     @property
diff --git a/selenium/webdriver/edge/service.py b/selenium/webdriver/edge/service.py
index 118f906..b1b8501 100644
--- a/selenium/webdriver/edge/service.py
+++ b/selenium/webdriver/edge/service.py
@@ -21,7 +21,7 @@
 class Service(service.ChromiumService):
 
     def __init__(self, executable_path, port=0, verbose=False, log_path=None,
-                 service_args=None, env=None):
+                 is_legacy=True, service_args=None, env=None):
         """
         Creates a new instance of the EdgeDriver service.
         EdgeDriver provides an interface for Microsoft WebDriver to use
@@ -32,16 +32,19 @@
          - port : Run the remote service on a specified port. Defaults to 0, which binds to a random open port
            of the system's choosing.
          - verbose : Whether to make the webdriver more verbose (passes the --verbose option to the binary).
-           Defaults to False.
+           Defaults to False. Should be only used for legacy mode.
          - log_path : Optional path for the webdriver binary to log to. Defaults to None which disables logging.
+         - is_legacy : Whether to use MicrosoftWebDriver.exe (legacy) or MSEdgeDriver.exe (chromium-based). Defaults to True.
          - service_args : List of args to pass to the WebDriver service.
         """
         self.service_args = service_args or []
 
-        if verbose:
-            self.service_args.append("--verbose")
+        if is_legacy:
+            if verbose:
+                self.service_args.append("--verbose")
 
-        super(Service, self).__init__(
+        service.ChromiumService.__init__(
+            self,
             executable_path,
             port,
             service_args,
diff --git a/selenium/webdriver/edge/webdriver.py b/selenium/webdriver/edge/webdriver.py
index f00297a..36cd1af 100644
--- a/selenium/webdriver/edge/webdriver.py
+++ b/selenium/webdriver/edge/webdriver.py
@@ -14,11 +14,9 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
-import warnings
-from selenium.webdriver.chromium.webdriver import ChromiumDriver
-from .options import Options
-from .service import Service
 from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
+from selenium.webdriver.edge.service import Service
+from selenium.webdriver.chromium.webdriver import ChromiumDriver
 
 
 DEFAULT_PORT = 0
@@ -26,46 +24,42 @@
 
 
 class WebDriver(ChromiumDriver):
-    """
-    Controls the Microsoft Edge driver and allows you to drive the browser.
-    You will need to download either the MicrosoftWebDriver (Legacy)
-    or MSEdgeDriver (Chromium) executable from
-    https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
-    """
 
-    def __init__(self, executable_path='MicrosoftWebDriver.exe', port=DEFAULT_PORT,
-                 options=None, service_args=None,
-                 capabilities=None, service_log_path=DEFAULT_SERVICE_LOG_PATH,
-                 service=None, keep_alive=False, verbose=False):
+    def __init__(self, executable_path='MicrosoftWebDriver.exe',
+                 capabilities=None, port=DEFAULT_PORT, verbose=False,
+                 service_log_path=None, log_path=DEFAULT_SERVICE_LOG_PATH,
+                 service=None, options=None, keep_alive=False, is_legacy=True,
+                 service_args=None):
         """
         Creates a new instance of the edge driver.
         Starts the service and then creates new instance of edge driver.
 
         :Args:
          - executable_path - Deprecated: path to the executable. If the default is used it assumes the executable is in the $PATH
+         - capabilities - Dictionary object with non-browser specific capabilities only, such as "proxy" or "loggingPref".
+           Only available in Legacy mode
          - port - Deprecated: port you would like the service to run, if left as 0, a free port will be found.
-         - options - this takes an instance of EdgeOptions
-         - service_args - Deprecated: List of args to pass to the driver service
-         - capabilities - Deprecated: Dictionary object with non-browser specific
-           capabilities only, such as "proxy" or "loggingPref".
+         - verbose - whether to set verbose logging in the service. Only available in Legacy Mode
          - service_log_path - Deprecated: Where to log information from the driver.
          - keep_alive - Whether to configure EdgeRemoteConnection to use HTTP keep-alive.
-         - verbose - whether to set verbose logging in the service.
+         - service_args - Deprecated: List of args to pass to the driver service
+         - is_legacy: Whether to use MicrosoftWebDriver.exe (legacy) or MSEdgeDriver.exe (chromium-based). Defaults to True.
          """
-        if executable_path != 'MicrosoftWebDriver.exe':
-            warnings.warn('executable_path has been deprecated, please pass in a Service object',
-                          DeprecationWarning, stacklevel=2)
-
-        if options is not None and options.use_chromium:
+        if not is_legacy:
             executable_path = "msedgedriver"
 
-        if service is None:
-            service = Service(executable_path, port, service_args, service_log_path)
+        service = service or Service(executable_path,
+                                     port=port,
+                                     verbose=verbose,
+                                     log_path=service_log_path,
+                                     is_legacy=is_legacy)
 
-        super(WebDriver, self).__init__(DesiredCapabilities.EDGE['browserName'], "ms",
-                                        port, options,
-                                        service_args, capabilities,
-                                        service_log_path, service, keep_alive)
-
-    def create_options(self):
-        return Options()
+        super(WebDriver, self).__init__(
+            executable_path,
+            port,
+            options,
+            service_args,
+            DesiredCapabilities.EDGE,
+            service_log_path,
+            service,
+            keep_alive)
diff --git a/selenium/webdriver/remote/webdriver.py b/selenium/webdriver/remote/webdriver.py
index 10ce7d0..73f09b1 100644
--- a/selenium/webdriver/remote/webdriver.py
+++ b/selenium/webdriver/remote/webdriver.py
@@ -378,6 +378,7 @@
 
                 element = driver.find_element_by_id('foo')
         """
+        warnings.warn("find_element_by_* commands are deprecated. Please use find_element() instead")
         return self.find_element(by=By.ID, value=id_)
 
     def find_elements_by_id(self, id_):
@@ -396,6 +397,7 @@
 
                 elements = driver.find_elements_by_id('foo')
         """
+        warnings.warn("find_elements_by_* commands are deprecated. Please use find_elements() instead")
         return self.find_elements(by=By.ID, value=id_)
 
     def find_element_by_xpath(self, xpath):
@@ -416,6 +418,7 @@
 
                 element = driver.find_element_by_xpath('//div/td[1]')
         """
+        warnings.warn("find_element_by_* commands are deprecated. Please use find_element() instead")
         return self.find_element(by=By.XPATH, value=xpath)
 
     def find_elements_by_xpath(self, xpath):
@@ -434,6 +437,7 @@
 
                 elements = driver.find_elements_by_xpath("//div[contains(@class, 'foo')]")
         """
+        warnings.warn("find_elements_by_* commands are deprecated. Please use find_elements() instead")
         return self.find_elements(by=By.XPATH, value=xpath)
 
     def find_element_by_link_text(self, link_text):
@@ -454,6 +458,7 @@
 
                 element = driver.find_element_by_link_text('Sign In')
         """
+        warnings.warn("find_element_by_* commands are deprecated. Please use find_element() instead")
         return self.find_element(by=By.LINK_TEXT, value=link_text)
 
     def find_elements_by_link_text(self, text):
@@ -472,6 +477,7 @@
 
                 elements = driver.find_elements_by_link_text('Sign In')
         """
+        warnings.warn("find_elements_by_* commands are deprecated. Please use find_elements() instead")
         return self.find_elements(by=By.LINK_TEXT, value=text)
 
     def find_element_by_partial_link_text(self, link_text):
@@ -492,6 +498,7 @@
 
                 element = driver.find_element_by_partial_link_text('Sign')
         """
+        warnings.warn("find_element_by_* commands are deprecated. Please use find_element() instead")
         return self.find_element(by=By.PARTIAL_LINK_TEXT, value=link_text)
 
     def find_elements_by_partial_link_text(self, link_text):
@@ -510,6 +517,7 @@
 
                 elements = driver.find_elements_by_partial_link_text('Sign')
         """
+        warnings.warn("find_elements_by_* commands are deprecated. Please use find_elements() instead")
         return self.find_elements(by=By.PARTIAL_LINK_TEXT, value=link_text)
 
     def find_element_by_name(self, name):
@@ -530,6 +538,7 @@
 
                 element = driver.find_element_by_name('foo')
         """
+        warnings.warn("find_element_by_* commands are deprecated. Please use find_element() instead")
         return self.find_element(by=By.NAME, value=name)
 
     def find_elements_by_name(self, name):
@@ -548,6 +557,7 @@
 
                 elements = driver.find_elements_by_name('foo')
         """
+        warnings.warn("find_elements_by_* commands are deprecated. Please use find_elements() instead")
         return self.find_elements(by=By.NAME, value=name)
 
     def find_element_by_tag_name(self, name):
@@ -568,6 +578,7 @@
 
                 element = driver.find_element_by_tag_name('h1')
         """
+        warnings.warn("find_element_by_* commands are deprecated. Please use find_element() instead")
         return self.find_element(by=By.TAG_NAME, value=name)
 
     def find_elements_by_tag_name(self, name):
@@ -586,6 +597,7 @@
 
                 elements = driver.find_elements_by_tag_name('h1')
         """
+        warnings.warn("find_elements_by_* commands are deprecated. Please use find_elements() instead")
         return self.find_elements(by=By.TAG_NAME, value=name)
 
     def find_element_by_class_name(self, name):
@@ -606,6 +618,7 @@
 
                 element = driver.find_element_by_class_name('foo')
         """
+        warnings.warn("find_element_by_* commands are deprecated. Please use find_element() instead")
         return self.find_element(by=By.CLASS_NAME, value=name)
 
     def find_elements_by_class_name(self, name):
@@ -624,6 +637,7 @@
 
                 elements = driver.find_elements_by_class_name('foo')
         """
+        warnings.warn("find_elements_by_* commands are deprecated. Please use find_elements() instead")
         return self.find_elements(by=By.CLASS_NAME, value=name)
 
     def find_element_by_css_selector(self, css_selector):
@@ -644,6 +658,7 @@
 
                 element = driver.find_element_by_css_selector('#foo')
         """
+        warnings.warn("find_element_by_* commands are deprecated. Please use find_element() instead")
         return self.find_element(by=By.CSS_SELECTOR, value=css_selector)
 
     def find_elements_by_css_selector(self, css_selector):
@@ -662,6 +677,7 @@
 
                 elements = driver.find_elements_by_css_selector('.foo')
         """
+        warnings.warn("find_elements_by_* commands are deprecated. Please use find_elements() instead")
         return self.find_elements(by=By.CSS_SELECTOR, value=css_selector)
 
     def execute_script(self, script, *args):
diff --git a/selenium/webdriver/remote/webelement.py b/selenium/webdriver/remote/webelement.py
index 8f29b84..09e4968 100644
--- a/selenium/webdriver/remote/webelement.py
+++ b/selenium/webdriver/remote/webelement.py
@@ -181,6 +181,7 @@
 
                 foo_element = element.find_element_by_id('foo')
         """
+        warnings.warn("find_element_by_* commands are deprecated. Please use find_element() instead")
         return self.find_element(by=By.ID, value=id_)
 
     def find_elements_by_id(self, id_):
@@ -199,6 +200,7 @@
 
                 elements = element.find_elements_by_id('foo')
         """
+        warnings.warn("find_elements_by_* commands are deprecated. Please use find_elements() instead")
         return self.find_elements(by=By.ID, value=id_)
 
     def find_element_by_name(self, name):
@@ -218,6 +220,7 @@
 
                 element = element.find_element_by_name('foo')
         """
+        warnings.warn("find_element_by_* commands are deprecated. Please use find_element() instead")
         return self.find_element(by=By.NAME, value=name)
 
     def find_elements_by_name(self, name):
@@ -235,6 +238,7 @@
 
                 elements = element.find_elements_by_name('foo')
         """
+        warnings.warn("find_elements_by_* commands are deprecated. Please use find_elements() instead")
         return self.find_elements(by=By.NAME, value=name)
 
     def find_element_by_link_text(self, link_text):
@@ -254,6 +258,7 @@
 
                 element = element.find_element_by_link_text('Sign In')
         """
+        warnings.warn("find_element_by_* commands are deprecated. Please use find_element() instead")
         return self.find_element(by=By.LINK_TEXT, value=link_text)
 
     def find_elements_by_link_text(self, link_text):
@@ -271,6 +276,7 @@
 
                 elements = element.find_elements_by_link_text('Sign In')
         """
+        warnings.warn("find_elements_by_* commands are deprecated. Please use find_elements() instead")
         return self.find_elements(by=By.LINK_TEXT, value=link_text)
 
     def find_element_by_partial_link_text(self, link_text):
@@ -290,6 +296,7 @@
 
                 element = element.find_element_by_partial_link_text('Sign')
         """
+        warnings.warn("find_element_by_* commands are deprecated. Please use find_element() instead")
         return self.find_element(by=By.PARTIAL_LINK_TEXT, value=link_text)
 
     def find_elements_by_partial_link_text(self, link_text):
@@ -307,6 +314,7 @@
 
                 elements = element.find_elements_by_partial_link_text('Sign')
         """
+        warnings.warn("find_elements_by_* commands are deprecated. Please use find_elements() instead")
         return self.find_elements(by=By.PARTIAL_LINK_TEXT, value=link_text)
 
     def find_element_by_tag_name(self, name):
@@ -326,6 +334,7 @@
 
                 element = element.find_element_by_tag_name('h1')
         """
+        warnings.warn("find_element_by_* commands are deprecated. Please use find_element() instead")
         return self.find_element(by=By.TAG_NAME, value=name)
 
     def find_elements_by_tag_name(self, name):
@@ -343,6 +352,7 @@
 
                 elements = element.find_elements_by_tag_name('h1')
         """
+        warnings.warn("find_elements_by_* commands are deprecated. Please use find_elements() instead")
         return self.find_elements(by=By.TAG_NAME, value=name)
 
     def find_element_by_xpath(self, xpath):
@@ -376,6 +386,7 @@
 
                 element = element.find_element_by_xpath('//div/td[1]')
         """
+        warnings.warn("find_element_by_* commands are deprecated. Please use find_element() instead")
         return self.find_element(by=By.XPATH, value=xpath)
 
     def find_elements_by_xpath(self, xpath):
@@ -408,6 +419,7 @@
                 elements = element.find_elements_by_xpath("//div[contains(@class, 'foo')]")
 
         """
+        warnings.warn("find_elements_by_* commands are deprecated. Please use find_elements() instead")
         return self.find_elements(by=By.XPATH, value=xpath)
 
     def find_element_by_class_name(self, name):
@@ -427,6 +439,7 @@
 
                 element = element.find_element_by_class_name('foo')
         """
+        warnings.warn("find_element_by_* commands are deprecated. Please use find_element() instead")
         return self.find_element(by=By.CLASS_NAME, value=name)
 
     def find_elements_by_class_name(self, name):
@@ -444,6 +457,7 @@
 
                 elements = element.find_elements_by_class_name('foo')
         """
+        warnings.warn("find_elements_by_* commands are deprecated. Please use find_elements() instead")
         return self.find_elements(by=By.CLASS_NAME, value=name)
 
     def find_element_by_css_selector(self, css_selector):
@@ -463,6 +477,7 @@
 
                 element = element.find_element_by_css_selector('#foo')
         """
+        warnings.warn("find_element_by_* commands are deprecated. Please use find_element() instead")
         return self.find_element(by=By.CSS_SELECTOR, value=css_selector)
 
     def find_elements_by_css_selector(self, css_selector):
@@ -480,6 +495,7 @@
 
                 elements = element.find_elements_by_css_selector('.foo')
         """
+        warnings.warn("find_elements_by_* commands are deprecated. Please use find_elements() instead")
         return self.find_elements(by=By.CSS_SELECTOR, value=css_selector)
 
     def send_keys(self, *value):
diff --git a/test/unit/selenium/webdriver/edge/edge_options_tests.py b/test/unit/selenium/webdriver/edge/edge_options_tests.py
index 7aa8d70..38f121b 100644
--- a/test/unit/selenium/webdriver/edge/edge_options_tests.py
+++ b/test/unit/selenium/webdriver/edge/edge_options_tests.py
@@ -32,12 +32,11 @@
 
 def test_set_page_load_strategy(options):
     options.page_load_strategy = 'normal'
-    caps = options.to_capabilities()
-    assert caps['pageLoadStrategy'] == 'normal'
+    assert options._page_load_strategy == 'normal'
 
 
 def test_get_page_load_strategy(options):
-    options._caps['pageLoadStrategy'] = 'normal'
+    options._page_load_strategy = 'normal'
     assert options.page_load_strategy == 'normal'
 
 
@@ -59,16 +58,8 @@
     assert isinstance(options, BaseOptions)
 
 
-def test_use_chromium():
-    options = Options()
-    options.use_chromium = True
+def test_custom_browser_name():
+    options = Options(is_legacy=False)
+    options.custom_browser_name = "testbrowsername"
     caps = options.to_capabilities()
-    assert caps['ms:edgeChromium'] == True
-
-
-def test_use_webview():
-    options = Options()
-    options.use_chromium = True
-    options.use_webview = True
-    caps = options.to_capabilities()
-    assert caps['browserName'] == "WebView2"
+    assert caps['browserName'] == "testbrowsername"