+def iterlast(itr, default=None):
+ if default is not None:
+ ret = default
+ try:
+ while True:
+ ret = next(itr)
+ except StopIteration:
+ return ret
+
+def find1(el, *args, **kwargs):
+ ret = el.find(*args, **kwargs)
+ if ret is None:
+ raise pageerror("could not find expected element", iterlast(el.parents, el))
+ return ret
+