Pass tab to WebEngineElement

This commit is contained in:
Florian Bruhin 2016-08-17 18:26:40 +02:00
parent 53e747d7ea
commit 30f6afc2aa
2 changed files with 5 additions and 5 deletions

View File

@ -32,10 +32,10 @@ class WebEngineElement(webelem.AbstractWebElement):
"""A web element for QtWebEngine, using JS under the hood.""" """A web element for QtWebEngine, using JS under the hood."""
def __init__(self, js_dict, run_js_callable): def __init__(self, js_dict, tab):
self._id = js_dict['id'] self._id = js_dict['id']
self._js_dict = js_dict self._js_dict = js_dict
self._run_js = run_js_callable self._tab = tab
def __eq__(self, other): def __eq__(self, other):
if not isinstance(other, WebEngineElement): if not isinstance(other, WebEngineElement):
@ -106,7 +106,7 @@ class WebEngineElement(webelem.AbstractWebElement):
""" """
# FIXME:qtwebengine what to do about use_js with WebEngine? # FIXME:qtwebengine what to do about use_js with WebEngine?
js_code = javascript.assemble('webelem', 'set_text', self._id, text) js_code = javascript.assemble('webelem', 'set_text', self._id, text)
self._run_js(js_code) self._tab.run_js_async(js_code)
def run_js_async(self, code, callback=None): def run_js_async(self, code, callback=None):
"""Run the given JS snippet async on the element.""" """Run the given JS snippet async on the element."""

View File

@ -455,7 +455,7 @@ class WebEngineTab(browsertab.AbstractTab):
""" """
elems = [] elems = []
for js_elem in js_elems: for js_elem in js_elems:
elem = webengineelem.WebEngineElement(js_elem, self.run_js_async) elem = webengineelem.WebEngineElement(js_elem, tab=self)
elems.append(elem) elems.append(elem)
callback(elems) callback(elems)
@ -471,7 +471,7 @@ class WebEngineTab(browsertab.AbstractTab):
if js_elem is None: if js_elem is None:
callback(None) callback(None)
else: else:
elem = webengineelem.WebEngineElement(js_elem, self.run_js_async) elem = webengineelem.WebEngineElement(js_elem, tab=self)
callback(elem) callback(elem)
def find_all_elements(self, selector, callback, *, only_visible=False): def find_all_elements(self, selector, callback, *, only_visible=False):