  It is imperative to democratize robotic process automation (RPA), as RPA has
become a main driver of the digital transformation but is still technically
very demanding to construct, especially for non-experts. In this paper, we
study how to automate an important class of RPA tasks, dubbed web RPA, which
are concerned with constructing software bots that automate interactions across
data and a web browser. Our main contributions are twofold. First, we develop a
formal foundation which allows semantically reasoning about web RPA programs
and formulate its synthesis problem in a principled manner. Second, we propose
a web RPA program synthesis algorithm based on a new idea called speculative
rewriting. This leads to a novel speculate-and-validate methodology in the
context of rewrite-based program synthesis, which has also shown to be both
theoretically simple and practically efficient for synthesizing programs from
demonstrations. We have built these ideas in a new interactive synthesizer
called WebRobot and evaluate it on 76 web RPA benchmarks. Our results show that
WebRobot automated a majority of them effectively. Furthermore, we show that
WebRobot compares favorably with a conventional rewrite-based synthesis
baseline implemented using egg. Finally, we conduct a small user study
demonstrating WebRobot is also usable.
