QtWebEngine: Fall back to events for hints if JS is broken

*cough* musl *cough*
This commit is contained in:
Florian Bruhin 2017-02-19 20:03:27 +01:00
parent a8b27eb271
commit f772ccb203

View File

@ -298,15 +298,21 @@ class WebKitElement(webelem.AbstractWebElement):
elem = elem._parent() # pylint: disable=protected-access
def _click_editable(self):
self._elem.evaluateJavaScript('this.focus();')
ok = self._elem.evaluateJavaScript('this.focus(); true;')
if not ok:
log.webelem.debug("Failed to focus via JS, falling back to event")
self._click_fake_event(click_target)
def _click_js(self, click_target):
settings = QWebSettings.globalSettings()
attribute = QWebSettings.JavascriptCanOpenWindows
could_open_windows = settings.testAttribute(attribute)
settings.setAttribute(attribute, True)
self._elem.evaluateJavaScript('this.click();')
ok = self._elem.evaluateJavaScript('this.click(); true;')
settings.setAttribute(attribute, could_open_windows)
if not ok:
log.webelem.debug("Failed to click via JS, falling back to event")
self._click_fake_event(click_target)
def _click_fake_event(self, click_target):
self._tab.data.override_target = click_target