def test_single_frame(self, stubs): """Test get_child_frames with a single frame without children.""" frame = stubs.FakeChildrenFrame() children = webkitelem.get_child_frames(frame) assert len(children) == 1 assert children[0] is frame frame.childFrames.assert_called_once_with()
def test_single_frame(self, stubs): """Test get_child_frames with a single frame without children.""" frame = stubs.FakeChildrenFrame() children = webkitelem.get_child_frames(frame) assert len(children) == 1 assert children[0] is frame frame.childFrames.assert_called_once_with()
def find_css(self, selector, callback, *, only_visible=False): mainframe = self._widget.page().mainFrame() if mainframe is None: raise browsertab.WebTabError("No frame focused!") elems = [] frames = webkitelem.get_child_frames(mainframe) for f in frames: for elem in f.findAllElements(selector): elems.append(webkitelem.WebKitElement(elem, tab=self._tab)) if only_visible: elems = [e for e in elems if e.is_visible(mainframe)] callback(elems)
def find_css(self, selector, callback, *, only_visible=False): mainframe = self._widget.page().mainFrame() if mainframe is None: raise browsertab.WebTabError("No frame focused!") elems = [] frames = webkitelem.get_child_frames(mainframe) for f in frames: for elem in f.findAllElements(selector): elems.append(webkitelem.WebKitElement(elem, tab=self._tab)) if only_visible: elems = [e for e in elems if e.is_visible(mainframe)] callback(elems)
def test_one_level(self, stubs): r"""Test get_child_frames with one level of children. o parent / \ ------ child1 o o child2 """ child1 = stubs.FakeChildrenFrame() child2 = stubs.FakeChildrenFrame() parent = stubs.FakeChildrenFrame([child1, child2]) children = webkitelem.get_child_frames(parent) assert len(children) == 3 assert children[0] is parent assert children[1] is child1 assert children[2] is child2 parent.childFrames.assert_called_once_with() child1.childFrames.assert_called_once_with() child2.childFrames.assert_called_once_with()
def find_css(self, selector, callback, error_cb, *, only_visible=False): utils.unused(error_cb) mainframe = self._widget.page().mainFrame() if mainframe is None: raise browsertab.WebTabError("No frame focused!") elems = [] frames = webkitelem.get_child_frames(mainframe) for f in frames: for elem in f.findAllElements(selector): elems.append(webkitelem.WebKitElement(elem, tab=self._tab)) if only_visible: # pylint: disable=protected-access elems = [e for e in elems if e._is_visible(mainframe)] # pylint: enable=protected-access callback(elems)
def test_multiple_levels(self, stubs): r"""Test get_child_frames with multiple levels of children. o root / \ ------ o o first /\ /\ ------ o o o o second """ second = [stubs.FakeChildrenFrame() for _ in range(4)] first = [stubs.FakeChildrenFrame(second[0:2]), stubs.FakeChildrenFrame(second[2:4])] root = stubs.FakeChildrenFrame(first) children = webkitelem.get_child_frames(root) assert len(children) == 7 assert children[0] is root for frame in [root] + first + second: frame.childFrames.assert_called_once_with()
def test_multiple_levels(self, stubs): r"""Test get_child_frames with multiple levels of children. o root / \ o o first /\ /\ o o o o second """ second = [stubs.FakeChildrenFrame() for _ in range(4)] first = [stubs.FakeChildrenFrame(second[0:2]), stubs.FakeChildrenFrame(second[2:4])] root = stubs.FakeChildrenFrame(first) children = webkitelem.get_child_frames(root) assert len(children) == 7 assert children[0] is root for frame in [root] + first + second: frame.childFrames.assert_called_once_with()
def test_one_level(self, stubs): r"""Test get_child_frames with one level of children. o parent / \ child1 o o child2 """ child1 = stubs.FakeChildrenFrame() child2 = stubs.FakeChildrenFrame() parent = stubs.FakeChildrenFrame([child1, child2]) children = webkitelem.get_child_frames(parent) assert len(children) == 3 assert children[0] is parent assert children[1] is child1 assert children[2] is child2 parent.childFrames.assert_called_once_with() child1.childFrames.assert_called_once_with() child2.childFrames.assert_called_once_with()
def find_css(self, selector, callback, error_cb, *, only_visible=False): utils.unused(error_cb) mainframe = self._widget.page().mainFrame() if mainframe is None: raise browsertab.WebTabError("No frame focused!") elems = [] frames = webkitelem.get_child_frames(mainframe) for f in frames: for elem in f.findAllElements(selector): elems.append(webkitelem.WebKitElement(elem, tab=self._tab)) if only_visible: # pylint: disable=protected-access elems = [e for e in elems if e._is_visible(mainframe)] # pylint: enable=protected-access callback(elems)