anchor.diff:             ,@body)))))
   
   (defmacro iterate-child-elements (web-element selector &body body)
  -  "Iterate over child elements of a QWebElement, binding ELEMENT to the current QWebElement."
  +  "Iterate over child elements of a QWebElement, binding H:ELEMENT to the current QWebElement."
     (let ((i (gensym)))
       `(let ((elements (qrun* (! "findAll" (ensure-web-element ,web-element) ,selector))))
          (dotimes (,i (qrun* (! "count" elements)))
  
positive.code:    #:clear-pixmap
     #:clone
     #:document
     #:element
     #:enclose-contents-with
     #:enclose-with
     #:find-first
     #:first-child
     #:frame
     #:geometry
  
negative.code:   (when scroll-to-bottom
      (qrun* (qsingle-shot 0 'scroll-to-bottom))))
  
  ;;; wrappers for some QFrame methods
  
  (defun document-element ()
    (qrun* (! "documentElement" (frame))))
  
  (defun find-all-elements (query)
    (qrun* (! "findAllElements" (frame) query)))
  
  (defun find-first-element (query)
    (qrun* (! "findFirstElement" (frame) query)))
  
  (defun scroll-to-top ()
    (qrun* (! "setScrollPosition" (frame) '(0 0))))
  
  