diff --git a/qutebrowser/browser/commands.py b/qutebrowser/browser/commands.py index 97fc8c186..0d977a30f 100644 --- a/qutebrowser/browser/commands.py +++ b/qutebrowser/browser/commands.py @@ -1484,6 +1484,10 @@ class CommandDispatcher: return text = elem.value() + if text is None: + message.error("Could not get text from the focused element.") + return + ed = editor.ExternalEditor(self._tabbed_browser) ed.editing_finished.connect(functools.partial( self.on_editing_finished, elem)) diff --git a/qutebrowser/browser/webelem.py b/qutebrowser/browser/webelem.py index 74304040c..0ddd4d265 100644 --- a/qutebrowser/browser/webelem.py +++ b/qutebrowser/browser/webelem.py @@ -139,7 +139,7 @@ class AbstractWebElement(collections.abc.MutableMapping): raise NotImplementedError def value(self): - """Get the value attribute for this element.""" + """Get the value attribute for this element, or None.""" raise NotImplementedError def set_value(self, value): diff --git a/qutebrowser/browser/webengine/webengineelem.py b/qutebrowser/browser/webengine/webengineelem.py index e045d22ed..bf8d06474 100644 --- a/qutebrowser/browser/webengine/webengineelem.py +++ b/qutebrowser/browser/webengine/webengineelem.py @@ -91,7 +91,7 @@ class WebEngineElement(webelem.AbstractWebElement): return self._js_dict['outer_xml'] def value(self): - return self._js_dict['value'] + return self._js_dict.get('value', None) def set_value(self, value): js_code = javascript.assemble('webelem', 'set_value', self._id, value)