Replace WebElement.frame() by .has_frame()
This commit is contained in:
parent
91b43c5cef
commit
6f24221c54
@ -117,7 +117,7 @@ class HintLabel(QLabel):
|
|||||||
@pyqtSlot()
|
@pyqtSlot()
|
||||||
def _move_to_elem(self):
|
def _move_to_elem(self):
|
||||||
"""Reposition the label to its element."""
|
"""Reposition the label to its element."""
|
||||||
if self.elem.frame() is None:
|
if not self.elem.has_frame():
|
||||||
# This sometimes happens for some reason...
|
# This sometimes happens for some reason...
|
||||||
log.hints.debug("Frame for {!r} vanished!".format(self))
|
log.hints.debug("Frame for {!r} vanished!".format(self))
|
||||||
self.hide()
|
self.hide()
|
||||||
@ -329,10 +329,14 @@ class HintActions(QObject):
|
|||||||
else:
|
else:
|
||||||
prompt = None
|
prompt = None
|
||||||
|
|
||||||
|
# FIXME:qtwebengine get a proper API for this
|
||||||
|
# pylint: disable=protected-access
|
||||||
|
page = elem._elem.webFrame().page()
|
||||||
|
# pylint: enable=protected-access
|
||||||
|
|
||||||
download_manager = objreg.get('download-manager', scope='window',
|
download_manager = objreg.get('download-manager', scope='window',
|
||||||
window=self._win_id)
|
window=self._win_id)
|
||||||
download_manager.get(url, page=elem.frame().page(),
|
download_manager.get(url, page=page, prompt_download_directory=prompt)
|
||||||
prompt_download_directory=prompt)
|
|
||||||
|
|
||||||
def call_userscript(self, elem, context):
|
def call_userscript(self, elem, context):
|
||||||
"""Call a userscript from a hint.
|
"""Call a userscript from a hint.
|
||||||
@ -897,7 +901,7 @@ class HintManager(QObject):
|
|||||||
}
|
}
|
||||||
elem = self._context.labels[keystr].elem
|
elem = self._context.labels[keystr].elem
|
||||||
|
|
||||||
if elem.frame() is None:
|
if not elem.has_frame():
|
||||||
message.error(self._win_id,
|
message.error(self._win_id,
|
||||||
"This element has no webframe.",
|
"This element has no webframe.",
|
||||||
immediately=True)
|
immediately=True)
|
||||||
|
@ -103,9 +103,8 @@ class AbstractWebElement(collections.abc.MutableMapping):
|
|||||||
html = None
|
html = None
|
||||||
return utils.get_repr(self, html=html)
|
return utils.get_repr(self, html=html)
|
||||||
|
|
||||||
def frame(self):
|
def has_frame(self):
|
||||||
"""Get the main frame of this element."""
|
"""Check if this element has a valid frame attached."""
|
||||||
# FIXME:qtwebengine get rid of this?
|
|
||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
|
|
||||||
def geometry(self):
|
def geometry(self):
|
||||||
|
@ -58,9 +58,8 @@ class WebEngineElement(webelem.AbstractWebElement):
|
|||||||
def __len__(self):
|
def __len__(self):
|
||||||
return len(self._js_dict['attributes'])
|
return len(self._js_dict['attributes'])
|
||||||
|
|
||||||
def frame(self):
|
def has_frame(self):
|
||||||
log.stub()
|
return True
|
||||||
return None
|
|
||||||
|
|
||||||
def geometry(self):
|
def geometry(self):
|
||||||
log.stub()
|
log.stub()
|
||||||
|
@ -83,9 +83,9 @@ class WebKitElement(webelem.AbstractWebElement):
|
|||||||
if self._elem.isNull():
|
if self._elem.isNull():
|
||||||
raise IsNullError('Element {} vanished!'.format(self._elem))
|
raise IsNullError('Element {} vanished!'.format(self._elem))
|
||||||
|
|
||||||
def frame(self):
|
def has_frame(self):
|
||||||
self._check_vanished()
|
self._check_vanished()
|
||||||
return self._elem.webFrame()
|
return self._elem.webFrame() is not None
|
||||||
|
|
||||||
def geometry(self):
|
def geometry(self):
|
||||||
self._check_vanished()
|
self._check_vanished()
|
||||||
|
@ -255,7 +255,7 @@ class TestWebKitElement:
|
|||||||
lambda e: None in e,
|
lambda e: None in e,
|
||||||
list, # __iter__
|
list, # __iter__
|
||||||
len,
|
len,
|
||||||
lambda e: e.frame(),
|
lambda e: e.has_frame(),
|
||||||
lambda e: e.geometry(),
|
lambda e: e.geometry(),
|
||||||
lambda e: e.style_property('visibility', strategy='computed'),
|
lambda e: e.style_property('visibility', strategy='computed'),
|
||||||
lambda e: e.text(),
|
lambda e: e.text(),
|
||||||
@ -394,7 +394,6 @@ class TestWebKitElement:
|
|||||||
assert elem.debug_text() == expected
|
assert elem.debug_text() == expected
|
||||||
|
|
||||||
@pytest.mark.parametrize('attribute, code', [
|
@pytest.mark.parametrize('attribute, code', [
|
||||||
('webFrame', lambda e: e.frame()),
|
|
||||||
('geometry', lambda e: e.geometry()),
|
('geometry', lambda e: e.geometry()),
|
||||||
('toOuterXml', lambda e: e.outer_xml()),
|
('toOuterXml', lambda e: e.outer_xml()),
|
||||||
])
|
])
|
||||||
@ -404,6 +403,12 @@ class TestWebKitElement:
|
|||||||
setattr(mock, 'return_value', sentinel)
|
setattr(mock, 'return_value', sentinel)
|
||||||
assert code(elem) is sentinel
|
assert code(elem) is sentinel
|
||||||
|
|
||||||
|
@pytest.mark.parametrize('frame, expected', [
|
||||||
|
(object(), True), (None, False)])
|
||||||
|
def test_has_frame(self, elem, frame, expected):
|
||||||
|
elem._elem.webFrame.return_value = frame
|
||||||
|
assert elem.has_frame() == expected
|
||||||
|
|
||||||
def test_tag_name(self, elem):
|
def test_tag_name(self, elem):
|
||||||
elem._elem.tagName.return_value = 'SPAN'
|
elem._elem.tagName.return_value = 'SPAN'
|
||||||
assert elem.tag_name() == 'span'
|
assert elem.tag_name() == 'span'
|
||||||
|
Loading…
Reference in New Issue
Block a user