combine various timeout options in a sane way
handle selecting text from all descendants i.e. "//div//text()"