Fix some shadow root tests (#29924)

diff --git a/tools/webdriver/webdriver/client.py b/tools/webdriver/webdriver/client.py
index 2c7b1c5..61c04a3 100644
--- a/tools/webdriver/webdriver/client.py
+++ b/tools/webdriver/webdriver/client.py
@@ -392,7 +392,7 @@
     @classmethod
     def from_json(cls, json, session):
         uuid = json[ShadowRoot.identifier]
-        return cls(uuid, session)
+        return cls(session, uuid)
 
     def send_shadow_command(self, method, uri, body=None):
         url = "shadow/{}/{}".format(self.id, uri)
diff --git a/webdriver/tests/find_element_from_shadow_root/find.py b/webdriver/tests/find_element_from_shadow_root/find.py
index 87941d4..1d3e6fb 100644
--- a/webdriver/tests/find_element_from_shadow_root/find.py
+++ b/webdriver/tests/find_element_from_shadow_root/find.py
@@ -54,7 +54,7 @@
     shadow_root = custom_element.shadow_root
     session.refresh()
 
-    response = find_element(session, shadow_root.id, "css", "input")
+    response = find_element(session, shadow_root.id, "css selector", "input")
     assert_error(response, "detached shadow root")
 
 
@@ -64,7 +64,7 @@
     expected = session.execute_script("return arguments[0].shadowRoot.querySelector('input')",
                                       args=(custom_element,))
     shadow_root = custom_element.shadow_root
-    response = find_element(session, shadow_root.id, "css", "input")
+    response = find_element(session, shadow_root.id, "css selector", "input")
     value = assert_success(response)
     assert_same_element(session, value, expected)
 
@@ -83,7 +83,7 @@
                                       args=(custom_element,))
     shadow_root = custom_element.shadow_root
     response = find_element(session, shadow_root.id, using, value)
-    assert_success(response)
+    value = assert_success(response)
     assert_same_element(session, value, expected)
 
 
@@ -104,7 +104,7 @@
     shadow_root = custom_element.shadow_root
 
     response = find_element(session, shadow_root.id, "link text", value)
-    assert_success(response)
+    value = assert_success(response)
     assert_same_element(session, value, expected)
 
 
@@ -126,7 +126,7 @@
     shadow_root = custom_element.shadow_root
 
     response = find_element(session, shadow_root.id, "partial link text", value)
-    assert_success(response)
+    value = assert_success(response)
     assert_same_element(session, value, expected)
 
 
diff --git a/webdriver/tests/find_element_from_shadow_root/user_prompts.py b/webdriver/tests/find_element_from_shadow_root/user_prompts.py
index 3813a7d..e1326cf 100644
--- a/webdriver/tests/find_element_from_shadow_root/user_prompts.py
+++ b/webdriver/tests/find_element_from_shadow_root/user_prompts.py
@@ -14,7 +14,7 @@
     return session.transport.send(
         "POST", "session/{session_id}/shadow/{shadow_id}/element".format(
             session_id=session.session_id,
-            element_id=shadow_id),
+            shadow_id=shadow_id),
         {"using": using, "value": value})
 
 
diff --git a/webdriver/tests/find_elements_from_shadow_root/find.py b/webdriver/tests/find_elements_from_shadow_root/find.py
index f70a4b4..5336ac1 100644
--- a/webdriver/tests/find_elements_from_shadow_root/find.py
+++ b/webdriver/tests/find_elements_from_shadow_root/find.py
@@ -13,8 +13,8 @@
         {"using": using, "value": value})
 
 
-def test_null_parameter_value(session, http, inline):
-    session.url = inline("<div><a href=# id=linkText>full link text</a></div>")
+def test_null_parameter_value(session, http, get_shadow_page):
+    session.url = get_shadow_page("<div><a href=# id=linkText>full link text</a></div>")
     custom_element = session.find.css("custom-shadow-element", all=False)
     shadow_root = custom_element.shadow_root
 
@@ -54,7 +54,7 @@
     shadow_root = custom_element.shadow_root
     session.refresh()
 
-    response = find_elements(session, shadow_root.id, "css", "input")
+    response = find_elements(session, shadow_root.id, "css selector", "input")
     assert_error(response, "detached shadow root")
 
 
@@ -62,7 +62,7 @@
     session.url = get_shadow_page("<div><input id='check' type='checkbox'/><input id='text'/></div>")
     custom_element = session.find.css("custom-shadow-element", all=False)
     shadow_root = custom_element.shadow_root
-    response = find_elements(session, shadow_root.id, "css", "input")
+    response = find_elements(session, shadow_root.id, "css selector", "input")
     assert_success(response)
 
 
@@ -92,7 +92,6 @@
 def test_find_elements_link_text(session, get_shadow_page, document, value):
     # Step 8 - 9
     session.url = get_shadow_page("<div><a href=#>not wanted</a><br/>{0}</div>".format(document))
-    element = session.find.css("div", all=False)
     custom_element = session.find.css("custom-shadow-element", all=False)
     shadow_root = custom_element.shadow_root
     expected = session.execute_script("return arguments[0].shadowRoot.querySelectorAll('a')[1]",
@@ -119,7 +118,6 @@
 def test_find_elements_partial_link_text(session, get_shadow_page, document, value):
     # Step 8 - 9
     session.url = get_shadow_page("<div><a href=#>not wanted</a><br/>{0}</div>".format(document))
-    element = session.find.css("div", all=False)
     custom_element = session.find.css("custom-shadow-element", all=False)
     shadow_root = custom_element.shadow_root
     expected = session.execute_script("return arguments[0].shadowRoot.querySelectorAll('a')[1]",
diff --git a/webdriver/tests/find_elements_from_shadow_root/user_prompts.py b/webdriver/tests/find_elements_from_shadow_root/user_prompts.py
index c4b903c..9950999 100644
--- a/webdriver/tests/find_elements_from_shadow_root/user_prompts.py
+++ b/webdriver/tests/find_elements_from_shadow_root/user_prompts.py
@@ -14,7 +14,7 @@
     return session.transport.send(
         "POST", "session/{session_id}/shadow/{shadow_id}/elements".format(
             session_id=session.session_id,
-            element_id=shadow_id),
+            shadow_id=shadow_id),
         {"using": using, "value": value})
 
 
diff --git a/webdriver/tests/support/asserts.py b/webdriver/tests/support/asserts.py
index e60d53b..bc59d7b 100644
--- a/webdriver/tests/support/asserts.py
+++ b/webdriver/tests/support/asserts.py
@@ -7,6 +7,7 @@
 
 # WebDriver specification ID: dfn-error-response-data
 errors = {
+    "detached shadow root": 404,
     "element click intercepted": 400,
     "element not selectable": 400,
     "element not interactable": 400,
@@ -23,6 +24,7 @@
     "no such cookie": 404,
     "no such element": 404,
     "no such frame": 404,
+    "no such shadow root": 404,
     "no such window": 404,
     "script timeout": 500,
     "session not created": 500,