Skip to content

ferranschen/MIWA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MIWA

This is the official implementation for our paper MIWA: Mixed-Initiative Web Automation for Better User Control and Confidence, UIST 2023.

teaser

Abstract

In the era of Big Data, web automation is frequently used by data scientists, domain experts, and programmers to complete time-consuming data collection tasks. However, developing web automation scripts requires familiarity with a programming language and HTML, which remains a key learning barrier for non-expert users. We provide MIWA, a mixed-initiative web automation system that enables users to create web automation scripts by demonstrating what content they want from the targeted websites. Compared to existing web automation tools, MIWA helps users better understand a generated script and build trust in it by (1) providing a step-by-step explanation of the script’s behavior with visual correspondence to the target website, (2) supporting greater autonomy and control over web automation via step-through debugging and fine-grained demonstration refinement, and (3) automatically detecting potential corner cases that are handled improperly by the generated script. We conducted a within-subjects user study with 24 participants and compared MIWA with Rousillon, a state-of-the-art web automation tool. Results showed that, compared to Rousillon, MIWA reduced the task completion time by half while helping participants gain more confidence in the generated script.

Interface

Image

Installation

MIWA consists of 3 parts: React UI, Backend System, and Chrome Extension.

arch

You will need to install/run these three parts.

We have compressed the code in the zip file named Interactive-WebRobot-main.zip. You need to unzip it before installation.

Files Path

├── back_end
│   ├── README.md
│   ├── lib
│   ├── node_modules
│   ├── package-lock.json
│   ├── package.json
│   ├── server.js
│   ├── server.js.map
│   ├── server.ts
│   ├── tsconfig.json
│   └── yarn.lock
├── front_end
│   ├── bootstrap-5.0.1-dist
│   ├── css
│   ├── manifest.json
│   ├── node_modules
│   ├── package-lock.json
│   ├── package.json
│   ├── pages
│   ├── readme.md
│   ├── resources
│   ├── scripts
│   └── test.json
└── react_web
    ├── README.md
    ├── build.sh
    ├── node_modules
    ├── package-lock.json
    ├── package.json
    ├── public
    ├── src
    └── yarn.lock
  • Chrome Extension
  1. Make sure the chrome browser has set to the developer mode in extension page.
  2. Load the extension and select the whole folder named "front_end".

Note: No compilation is needed in this part.

  • React UI
cd react_web
./build.sh # This will install the required libraries and start the react ui server.

Note: The server will launch a page at http://localhost:3006.

  • Backend synthesizer
cd back_end
yarn build
yarn start # This will start the backend server

After installation, you will need to launch the backend synthesizer and React UI. Then, open the target page and place it next to the React UI. Finally, launch the browser extension, click "start", and scrape the target elements (using right click) on the page. The browser extension will begin monitoring the actions.

Credits

The project was developed under the supervision of Prof. Tianyi Zhang at Purdue and Prof. Xinyu Wang at UMich.

Citation

If you find our work helpful, please cite:

@inproceedings{chen2023miwa,
  title={MIWA: Mixed-Initiative Web Automation for Better User Control and Confidence},
  author={Chen, Weihao and Liu, Xiaoyu and Zhang, Jiacheng and Huang, Zhicheng and Lam, Ian Long and Dong, Rui and Wang, Xinyu and Zhang, Tianyi},
  booktitle={Proceedings of the 36th Annual ACM Symposium on User Interface Software and Technology},
  year={2023},
  organization={ACM}
}

About

MIWA: Mixed-Initiative Web Automation for Beter User Control and Confidence

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors