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