mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-24 19:37:15 +00:00
Bug 759477: adding the ability to get the tag name of an Marionette HTMLElement; r=jgriffin
This commit is contained in:
parent
3a0930992b
commit
128d2d6f45
@ -77,6 +77,10 @@ class HTMLElement(object):
|
||||
def is_displayed(self):
|
||||
return self.marionette._send_message('isElementDisplayed', 'value', element=self.id)
|
||||
|
||||
@property
|
||||
def tag_name(self):
|
||||
return self.marionette._send_message('getElementTagName', 'value', element=self.id)
|
||||
|
||||
|
||||
class Marionette(object):
|
||||
|
||||
|
@ -22,6 +22,7 @@ class TestElements(MarionetteTestCase):
|
||||
el = self.marionette.find_element("id", "divLink")
|
||||
div = self.marionette.find_element("id", "testDiv")
|
||||
found_el = div.find_element("tag name", "a")
|
||||
self.assertEqual("a", found_el.tag_name)
|
||||
self.assertEqual(HTMLElement, type(found_el))
|
||||
self.assertEqual(el.id, found_el.id)
|
||||
|
||||
@ -38,9 +39,11 @@ class TestElements(MarionetteTestCase):
|
||||
self.marionette.navigate(test_html)
|
||||
el = self.marionette.execute_script("return window.document.getElementsByTagName('body')[0];")
|
||||
found_el = self.marionette.find_element("tag name", "body")
|
||||
self.assertEqual('body', found_el.tag_name)
|
||||
self.assertEqual(HTMLElement, type(found_el))
|
||||
self.assertEqual(el.id, found_el.id)
|
||||
found_el = self.marionette.find_elements("tag name", "body")[0]
|
||||
self.assertEqual('body', found_el.tag_name)
|
||||
self.assertEqual(HTMLElement, type(found_el))
|
||||
self.assertEqual(el.id, found_el.id)
|
||||
|
||||
@ -157,6 +160,7 @@ class TestElementsChrome(MarionetteTestCase):
|
||||
def test_tag_name(self):
|
||||
el = self.marionette.execute_script("return window.document.getElementsByTagName('vbox')[0];")
|
||||
found_el = self.marionette.find_element("tag name", "vbox")
|
||||
self.assertEquals('vbox', found_el.tag_name)
|
||||
self.assertEqual(HTMLElement, type(found_el))
|
||||
self.assertEqual(el.id, found_el.id)
|
||||
|
||||
|
@ -1056,6 +1056,28 @@ MarionetteDriverActor.prototype = {
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Get the tag name of the element.
|
||||
*
|
||||
* @param object aRequest
|
||||
* 'element' member holds the reference id to
|
||||
* the element that will be inspected
|
||||
*/
|
||||
getElementTagName: function MDA_getElementTagName(aRequest) {
|
||||
if (this.context == "chrome") {
|
||||
try {
|
||||
let el = this.curBrowser.elementManager.getKnownElement(aRequest.element, this.getCurrentWindow());
|
||||
this.sendResponse(el.tagName.toLowerCase());
|
||||
}
|
||||
catch (e) {
|
||||
this.sendError(e.message, e.code, e.stack);
|
||||
}
|
||||
}
|
||||
else {
|
||||
this.sendAsync("getElementTagName", {element: aRequest.element});
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Check if element is displayed
|
||||
*
|
||||
@ -1421,6 +1443,7 @@ MarionetteDriverActor.prototype.requestTypes = {
|
||||
"clickElement": MarionetteDriverActor.prototype.clickElement,
|
||||
"getElementAttribute": MarionetteDriverActor.prototype.getElementAttribute,
|
||||
"getElementText": MarionetteDriverActor.prototype.getElementText,
|
||||
"getElementTagName": MarionetteDriverActor.prototype.getElementTagName,
|
||||
"isElementDisplayed": MarionetteDriverActor.prototype.isElementDisplayed,
|
||||
"isElementEnabled": MarionetteDriverActor.prototype.isElementEnabled,
|
||||
"isElementSelected": MarionetteDriverActor.prototype.isElementSelected,
|
||||
|
@ -100,6 +100,7 @@ function startListeners() {
|
||||
addMessageListenerId("Marionette:clickElement", clickElement);
|
||||
addMessageListenerId("Marionette:getElementAttribute", getElementAttribute);
|
||||
addMessageListenerId("Marionette:getElementText", getElementText);
|
||||
addMessageListenerId("Marionette:getElementTagName", getElementTagName);
|
||||
addMessageListenerId("Marionette:isElementDisplayed", isElementDisplayed);
|
||||
addMessageListenerId("Marionette:isElementEnabled", isElementEnabled);
|
||||
addMessageListenerId("Marionette:isElementSelected", isElementSelected);
|
||||
@ -159,7 +160,7 @@ function deleteSession(msg) {
|
||||
removeMessageListenerId("Marionette:findElementsContent", findElementsContent);
|
||||
removeMessageListenerId("Marionette:clickElement", clickElement);
|
||||
removeMessageListenerId("Marionette:getElementAttribute", getElementAttribute);
|
||||
removeMessageListenerId("Marionette:getElementText", getElementText);
|
||||
removeMessageListenerId("Marionette:getElementTagName", getElementTagName);
|
||||
removeMessageListenerId("Marionette:isElementDisplayed", isElementDisplayed);
|
||||
removeMessageListenerId("Marionette:isElementEnabled", isElementEnabled);
|
||||
removeMessageListenerId("Marionette:isElementSelected", isElementSelected);
|
||||
@ -615,6 +616,19 @@ function getElementText(msg) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the tag name of an element.
|
||||
*/
|
||||
function getElementTagName(msg) {
|
||||
try {
|
||||
let el = elementManager.getKnownElement(msg.json.element, curWindow);
|
||||
sendResponse({value: el.tagName.toLowerCase()});
|
||||
}
|
||||
catch (e) {
|
||||
sendError(e.message, e.code, e.stack);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if element is displayed
|
||||
*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user