diff --git a/testing/marionette/driver.js b/testing/marionette/driver.js index 1cde22f81cbe..64a587554e1b 100644 --- a/testing/marionette/driver.js +++ b/testing/marionette/driver.js @@ -2172,7 +2172,7 @@ GeckoDriver.prototype.isElementSelected = function(cmd, resp) { break; case Context.CONTENT: - resp.value = yield this.listener.isElementSelected({id: id}); + resp.value = yield this.listener.isElementSelected(id); break; } }; diff --git a/testing/marionette/listener.js b/testing/marionette/listener.js index e459ac2cf8e4..d1b0eb4a0bbc 100644 --- a/testing/marionette/listener.js +++ b/testing/marionette/listener.js @@ -207,6 +207,7 @@ let isElementEnabledFn = dispatch(isElementEnabled); let getCurrentUrlFn = dispatch(getCurrentUrl); let findElementContentFn = dispatch(findElementContent); let findElementsContentFn = dispatch(findElementsContent); +let isElementSelectedFn = dispatch(isElementSelected); /** * Start all message listeners @@ -241,7 +242,7 @@ function startListeners() { addMessageListenerId("Marionette:getElementSize", getElementSizeFn); // deprecated addMessageListenerId("Marionette:getElementRect", getElementRectFn); addMessageListenerId("Marionette:isElementEnabled", isElementEnabledFn); - addMessageListenerId("Marionette:isElementSelected", isElementSelected); + addMessageListenerId("Marionette:isElementSelected", isElementSelectedFn); addMessageListenerId("Marionette:sendKeysToElement", sendKeysToElement); addMessageListenerId("Marionette:getElementLocation", getElementLocation); //deprecated addMessageListenerId("Marionette:clearElement", clearElement); @@ -346,7 +347,7 @@ function deleteSession(msg) { removeMessageListenerId("Marionette:getElementSize", getElementSizeFn); // deprecated removeMessageListenerId("Marionette:getElementRect", getElementRectFn); removeMessageListenerId("Marionette:isElementEnabled", isElementEnabledFn); - removeMessageListenerId("Marionette:isElementSelected", isElementSelected); + removeMessageListenerId("Marionette:isElementSelected", isElementSelectedFn); removeMessageListenerId("Marionette:sendKeysToElement", sendKeysToElement); removeMessageListenerId("Marionette:getElementLocation", getElementLocation); removeMessageListenerId("Marionette:clearElement", clearElement); @@ -1589,18 +1590,16 @@ function isElementEnabled(id) { } /** - * Check if element is selected + * Determines if the referenced element is selected or not. + * + * This operation only makes sense on input elements of the Checkbox- + * and Radio Button states, or option elements. */ -function isElementSelected(msg) { - let command_id = msg.json.command_id; - try { - let el = elementManager.getKnownElement(msg.json.id, curFrame); +function isElementSelected(id) { + let el = elementManager.getKnownElement(id, curFrame); let selected = utils.isElementSelected(el); checkSelectedAccessibility(accessibility.getAccessibleObject(el), selected); - sendResponse({value: selected}, command_id); - } catch (e) { - sendError(e, command_id); - } + return selected; } /**