diff --git a/weboob/tools/browser2/page.py b/weboob/tools/browser2/page.py index fcd907440105df5d4204d107e7c781e83a478e82..1d3ffa316dba0a08e8bdc557fa81600b6be1b5bb 100644 --- a/weboob/tools/browser2/page.py +++ b/weboob/tools/browser2/page.py @@ -662,16 +662,23 @@ def __call__(self, *args, **kwargs): return self.__iter__() - def __iter__(self): - self.parse(self.el) - + def find_elements(self): + """ + Get the nodes that will have to be processed. + This method can be overridden if xpath filters are not + sufficient. + """ if self.item_xpath is not None: for el in self.el.xpath(self.item_xpath): - for obj in self.handle_element(el): - if not self.flush_at_end: - yield obj + yield el else: - for obj in self.handle_element(self.el): + yield self.el + + def __iter__(self): + self.parse(self.el) + + for el in self.find_elements(): + for obj in self.handle_element(el): if not self.flush_at_end: yield obj