Use URL instead of title
diff --git a/resources/testdriver.js b/resources/testdriver.js index 6d77b9d..ac3ed65 100644 --- a/resources/testdriver.js +++ b/resources/testdriver.js
@@ -1076,7 +1076,7 @@ * rejected in the cases of failures. */ get_accessibility_api_node: async function(dom_id) { - return window.test_driver_internal.get_accessibility_api_node(document.title, dom_id) + return window.test_driver_internal.get_accessibility_api_node(dom_id, location.href) .then((jsonresult) => { return JSON.parse(jsonresult); }); @@ -1270,7 +1270,7 @@ throw new Error("clear_device_posture() is not implemented by testdriver-vendor.js"); }, - async get_accessibility_api_node(title, dom_id) { + async get_accessibility_api_node(dom_id, url) { throw new Error("get_accessibility_api_node() is not available."); } };
diff --git a/tools/wptrunner/wptrunner/executors/actions.py b/tools/wptrunner/wptrunner/executors/actions.py index 060d147..41c5658 100644 --- a/tools/wptrunner/wptrunner/executors/actions.py +++ b/tools/wptrunner/wptrunner/executors/actions.py
@@ -472,9 +472,9 @@ self.protocol = protocol def __call__(self, payload): - title = payload["title"] dom_id = payload["dom_id"] - return self.protocol.platform_accessibility.get_accessibility_api_node(title, dom_id) + url = payload["url"] + return self.protocol.platform_accessibility.get_accessibility_api_node(dom_id, url) actions = [ClickAction,
diff --git a/tools/wptrunner/wptrunner/executors/executoraxapi.py b/tools/wptrunner/wptrunner/executors/executoraxapi.py index c9c52fd..54c4fea 100644 --- a/tools/wptrunner/wptrunner/executors/executoraxapi.py +++ b/tools/wptrunner/wptrunner/executors/executoraxapi.py
@@ -91,7 +91,7 @@ raise Exception(f"Couldn't find application: {product_name}") - def get_accessibility_api_node(self, title, dom_id): + def get_accessibility_api_node(self, dom_id, url): tab = find_active_tab(self.root) node = find_node(tab, "AXDOMIdentifier", dom_id) if not node:
diff --git a/tools/wptrunner/wptrunner/executors/executorplatformaccessibility.py b/tools/wptrunner/wptrunner/executors/executorplatformaccessibility.py index 35fd6d4..f7868dc 100644 --- a/tools/wptrunner/wptrunner/executors/executorplatformaccessibility.py +++ b/tools/wptrunner/wptrunner/executors/executorplatformaccessibility.py
@@ -33,5 +33,5 @@ self.impl = WindowsAccessibilityExecutorImpl() self.impl.setup(self.product_name) - def get_accessibility_api_node(self, title, dom_id): - return self.impl.get_accessibility_api_node(title, dom_id) + def get_accessibility_api_node(self, dom_id, url): + return self.impl.get_accessibility_api_node(dom_id, url)
diff --git a/tools/wptrunner/wptrunner/executors/executorwindowsaccessibility.py b/tools/wptrunner/wptrunner/executors/executorwindowsaccessibility.py index d877740..bca19b4 100644 --- a/tools/wptrunner/wptrunner/executors/executorwindowsaccessibility.py +++ b/tools/wptrunner/wptrunner/executors/executorwindowsaccessibility.py
@@ -67,22 +67,22 @@ root = accessible_object_from_window(hwnd) return to_ia2(root) -def poll_for_tab(title, root): - tab = find_tab(title, root) +def poll_for_tab(url, root): + tab = find_tab(url, root) while not tab: time.sleep(0.01) - tab = find_tab(title, root) + tab = find_tab(url, root) return tab -def find_tab(title, root): +def find_tab(url, root): for i in range(1, root.accChildCount + 1): child = to_ia2(root.accChild(i)) if child.accRole(CHILDID_SELF) == ROLE_SYSTEM_DOCUMENT: - if child.accName(CHILDID_SELF) == title: + if child.accValue(CHILDID_SELF) == url: return child # No need to search within documents. return - descendant = find_tab(title, child) + descendant = find_tab(url, child) if descendant: return descendant @@ -115,12 +115,12 @@ def setup(self, product_name): self.product_name = product_name - def get_accessibility_api_node(self, title, dom_id): + def get_accessibility_api_node(self, dom_id, url): self.root = find_browser(self.product_name) if not self.root: raise Exception(f"Couldn't find browser {self.product_name}.") - tab = poll_for_tab(title, self.root) + tab = poll_for_tab(url, self.root) node = find_ia2_node(tab, dom_id) if not node: raise Exception(f"Couldn't find node with ID {dom_id}.")
diff --git a/tools/wptrunner/wptrunner/testdriver-extra.js b/tools/wptrunner/wptrunner/testdriver-extra.js index 9f8427e..9a5880b 100644 --- a/tools/wptrunner/wptrunner/testdriver-extra.js +++ b/tools/wptrunner/wptrunner/testdriver-extra.js
@@ -336,7 +336,7 @@ return create_action("clear_device_posture", {context}); }; - window.test_driver_internal.get_accessibility_api_node = function(title, dom_id) { - return create_action("get_accessibility_api_node", {title, dom_id}); + window.test_driver_internal.get_accessibility_api_node = function(dom_id, url) { + return create_action("get_accessibility_api_node", {dom_id, url}); }; })();