diff --git a/qutebrowser/browser/commands.py b/qutebrowser/browser/commands.py index 5752d974f..24387d0d8 100644 --- a/qutebrowser/browser/commands.py +++ b/qutebrowser/browser/commands.py @@ -711,8 +711,7 @@ class CommandDispatcher: and do everything async. """ frame = self._tabs.currentWidget().page().currentFrame() - elem = frame.findFirstElement(webelem.SELECTORS[ - webelem.Group.focus]) + elem = webelem.focus_elem(frame) if elem.isNull(): raise CommandError("No element focused!") if not webelem.is_editable(elem): diff --git a/qutebrowser/utils/webelem.py b/qutebrowser/utils/webelem.py index e81b89067..7df94bdd5 100644 --- a/qutebrowser/utils/webelem.py +++ b/qutebrowser/utils/webelem.py @@ -247,3 +247,14 @@ def is_editable(elem): log.webview.debug("span with classes {} clicked!".format( elem.classes())) return False + + +def focus_elem(frame): + """Get the focused element in a webframe. + + FIXME: Add tests. + + Args: + frame: The QWebFrame to search in. + """ + return frame.findFirstElement(SELECTORS[Group.focus])