def _get_table(self): if self.role not in (controlTypes.ROLE_TABLECELL,controlTypes.ROLE_TABLEROW) or not self.HTMLNode: raise NotImplementedError HTMLNode=self.HTMLNode while HTMLNode: nodeName=HTMLNode.nodeName if nodeName: nodeName=nodeName.upper() if nodeName=="TABLE": return MSHTML(HTMLNode=HTMLNode) HTMLNode=HTMLNode.parentNode raise NotImplementedError
def _get_table(self): if self.role not in (controlTypes.Role.TABLECELL, controlTypes.Role.TABLEROW) or not self.HTMLNode: return None HTMLNode = self.HTMLNode while HTMLNode: nodeName = HTMLNode.nodeName if nodeName: nodeName = nodeName.upper() if nodeName == "TABLE": return MSHTML(HTMLNode=HTMLNode) HTMLNode = HTMLNode.parentNode return None
def _get_next(self): if self.HTMLNode: try: nextNode = self.HTMLNode.nextSibling except COMError: nextNode = None if not nextNode: return None obj = MSHTML(HTMLNode=nextNode) if obj and obj.HTMLNodeName in self.HTMLNodeNameNavSkipList: obj = obj.next return obj return super(MSHTML, self).next
def _get_previous(self): if self.HTMLNode: try: previousNode = self.HTMLNode.previousSibling except COMError: previousNode = None if not previousNode: return None obj = MSHTML(HTMLNode=previousNode) if obj and obj.HTMLNodeName in self.HTMLNodeNameNavSkipList: obj = obj.previous return obj return super(MSHTML, self).previous
def _get_parent(self): if self.HTMLNode: try: parentNode = self.HTMLNode.parentElement except (COMError, NameError): parentNode = None if not parentNode and self.HTMLNodeHasAncestorIAccessible: try: parentNode = self.HTMLNode.parentNode except (COMError, NameError): parentNode = None if parentNode: obj = MSHTML(HTMLNode=parentNode) if obj and obj.HTMLNodeName not in self.HTMLNodeNameNavSkipList: return obj return super(MSHTML, self).parent
def _get_lastChild(self): if self.HTMLNode: if self.HTMLNodeName in ("FRAME", "IFRAME"): return super(MSHTML, self).lastChild try: childNode = self.HTMLNode.lastChild except COMError: childNode = None if not childNode: return None obj = MSHTML(HTMLNode=childNode) if obj and obj.HTMLNodeName in self.HTMLNodeNameNavSkipList: return obj.previous return obj if self.HTMLNodeHasAncestorIAccessible: return None return super(MSHTML, self).lastChild