This is an automated email from the ASF dual-hosted git repository.

shenyi pushed a commit to branch test-autorun
in repository https://gitbox.apache.org/repos/asf/incubator-echarts.git


The following commit(s) were added to refs/heads/test-autorun by this push:
     new 1c3cbd4  test: add more recorded test actions. tweak some tests
1c3cbd4 is described below

commit 1c3cbd4c2b18ebc383ae56f201f1c0e9ca91b7e7
Author: pissang <bm2736...@gmail.com>
AuthorDate: Tue Sep 10 00:13:19 2019 +0800

    test: add more recorded test actions. tweak some tests
---
 test/dataZoom-action.html                          |  10 +-
 test/dataZoom-scatter-hv-polar.html                |   2 +-
 test/dataZoom-scatter-hv.html                      |   1 +
 test/getOption.html                                |   4 +-
 test/line-animation.html                           |   2 +-
 test/runTest/actions/__meta__.json                 |  89 +++++++++-
 test/runTest/actions/connect.json                  |   1 +
 test/runTest/actions/connect2.json                 |   1 +
 test/runTest/actions/css-transform.json            |   1 +
 test/runTest/actions/custom-children-remove.json   |   1 +
 test/runTest/actions/custom-hexbin.json            |   1 +
 test/runTest/actions/custom.json                   |   1 +
 test/runTest/actions/dataZoom-action.json          |   1 +
 test/runTest/actions/dataZoom-axes.json            |   1 +
 test/runTest/actions/dataZoom-axis-type.json       |   1 +
 test/runTest/actions/dataZoom-clip.json            |   1 +
 test/runTest/actions/dataZoom-extreme.json         |   1 +
 .../runTest/actions/dataZoom-rainfall-connect.json |   1 +
 test/runTest/actions/dataZoom-rainfall-inside.json |   1 +
 test/runTest/actions/dataZoom-rainfall.json        |   1 +
 .../runTest/actions/dataZoom-scatter-category.json |   1 +
 .../runTest/actions/dataZoom-scatter-hv-polar.json |   1 +
 test/runTest/actions/dataZoom-scatter-hv.json      |   1 +
 test/runTest/actions/dataZoom-sync.json            |   1 +
 test/runTest/actions/dataZoom-toolbox.json         |   1 +
 test/runTest/actions/dataZoomHighPrecision.json    |   1 +
 test/runTest/actions/dynamic-splitNumber.json      |   1 +
 test/runTest/actions/ec-event.json                 | 192 +++++++++++++++++++++
 test/runTest/actions/funnel.json                   |   1 +
 test/runTest/actions/geo-map.json                  |   1 +
 test/runTest/actions/geoScatter.json               |   1 +
 test/runTest/actions/getOption.json                |   1 +
 test/runTest/actions/graph-grid.json               |   1 +
 test/runTest/actions/graph-simple.json             |   1 +
 test/runTest/actions/graph.json                    |   1 +
 test/runTest/actions/heatmap-map.json              |   1 +
 test/runTest/actions/heatmap.json                  |   1 +
 test/runTest/actions/homepage3.json                |   1 +
 test/runTest/actions/hoverStyle.json               |   1 +
 test/runTest/actions/label-position.json           |   1 +
 test/runTest/actions/largeLine-tooltip.json        |   1 +
 test/runTest/actions/legend.json                   |   1 +
 test/runTest/actions/line-animation.json           |   1 +
 test/runTest/actions/map-parallel.json             |   2 +-
 test/runTest/actions/map-province.json             |   1 +
 test/runTest/actions/map.json                      |   2 +-
 test/runTest/actions/mapWorld.json                 |   1 +
 test/runTest/actions/markArea.json                 |   1 +
 test/runTest/actions/media-dataZoom.json           |   1 +
 test/runTest/actions/media-finance.json            |   1 +
 test/runTest/actions/media-pie.json                |   1 +
 test/runTest/actions/min-max-function.json         |   1 +
 test/runTest/actions/parallel-aqi.json             |   1 +
 test/runTest/actions/parallel-nutrients.json       |   1 +
 test/runTest/actions/pictorial-repeat.json         |   1 +
 test/runTest/actions/pie-action.json               |   1 +
 test/runTest/actions/pie-calculable.json           |   1 +
 test/runTest/actions/pie.json                      |   1 +
 test/runTest/actions/polarLine.json                |   1 +
 test/runTest/actions/polarScatter.json             |   1 +
 test/runTest/actions/radar.json                    |   1 +
 test/runTest/actions/radar2.json                   |   1 +
 test/runTest/actions/radar3.json                   |   1 +
 test/runTest/actions/radar4.json                   |   1 +
 test/runTest/actions/sankey-depth.json             |   1 +
 test/runTest/actions/sankey-jump.json              |   1 +
 test/runTest/actions/sankey-level.json             |   1 +
 .../actions/scatter-random-stream-fix-axis.json    |   1 +
 test/runTest/actions/scatter-single-axis.json      |   1 +
 test/runTest/actions/scatterMatrix.json            |   1 +
 test/runTest/actions/sunburst-book.json            |   1 +
 test/runTest/actions/sunburst-canvas.json          |   1 +
 test/runTest/actions/symbol2.json                  |   1 +
 test/runTest/actions/themeRiver.json               |   1 +
 test/runTest/actions/timeScale.json                |   1 +
 test/runTest/actions/timeScale2.json               |   1 +
 test/runTest/actions/toolbox-textStyle.json        |   1 +
 test/runTest/actions/toolbox-tooltip.json          |   1 +
 test/runTest/actions/tooltip-axisPointer.json      |   1 +
 test/runTest/actions/tooltip-cascade.json          |   1 +
 test/runTest/actions/tooltip-event.json            |   1 +
 test/runTest/actions/tooltip-link.json             |   1 +
 test/runTest/actions/tooltip-rich.json             |   1 +
 test/runTest/actions/tooltip-setOption.json        |   1 +
 test/runTest/actions/tooltip.json                  |   1 +
 test/runTest/actions/tree-image.json               |   1 +
 test/runTest/actions/tree-legend.json              |   1 +
 test/runTest/actions/tree-radial.json              |   1 +
 test/runTest/actions/treemap-disk.json             |   2 +-
 test/runTest/actions/treemap-disk2.json            |   1 +
 test/runTest/actions/treemap-obama.json            |   1 +
 test/runTest/actions/treemap-option.json           |   1 +
 test/runTest/actions/treemap-option2.json          |   1 +
 test/runTest/actions/visualMap-categories.json     |   1 +
 test/runTest/blacklist.js                          |   4 +-
 test/runTest/cli.js                                |   4 +-
 test/runTest/recorder/recorder.js                  |  16 ++
 test/theme.html                                    |   2 +-
 test/tooltip-event.html                            |   2 +-
 99 files changed, 400 insertions(+), 18 deletions(-)

diff --git a/test/dataZoom-action.html b/test/dataZoom-action.html
index cdef5f2..ba0fa2b 100644
--- a/test/dataZoom-action.html
+++ b/test/dataZoom-action.html
@@ -26,6 +26,7 @@ under the License.
         <script src="lib/testHelper.js"></script>
         <script src="lib/facePrint.js"></script>
         <script src="lib/jquery.min.js"></script>
+        <script src="lib/config.js"></script>
         <link rel="stylesheet" href="lib/reset.css" />
     </head>
     <body>
@@ -74,9 +75,10 @@ under the License.
                         startValue: dzs[1].startValue,
                         endValue: dzs[1].endValue
                     }]
-                    alert(
-                        '!!! ' + ctx.hint + ' !!!\n' + JSON.stringify(info, 
null, 2)
-                    );
+                    console.log('!!! ' + ctx.hint + ' !!!\n' + 
JSON.stringify(info, null, 2));
+                    // alert(
+                    //     '!!! ' + ctx.hint + ' !!!\n' + JSON.stringify(info, 
null, 2)
+                    // );
                 }
 
                 function dispatchPercent(start, end) {
@@ -168,7 +170,7 @@ under the License.
             var currEndValue = maxEndValue;
 
             var option = {
-                animationDurationUpdate: 3000,
+                animationDurationUpdate: 1000,
                 tooltip: {
                     trigger: 'axis'
                 },
diff --git a/test/dataZoom-scatter-hv-polar.html 
b/test/dataZoom-scatter-hv-polar.html
index dada44a..a788d36 100644
--- a/test/dataZoom-scatter-hv-polar.html
+++ b/test/dataZoom-scatter-hv-polar.html
@@ -31,7 +31,7 @@ under the License.
                 padding: 0;
                 margin: 0;
                 width: 100%;
-                height: 600px;
+                height: 550px;
             }
             .operations {
                 margin-top: 10px;
diff --git a/test/dataZoom-scatter-hv.html b/test/dataZoom-scatter-hv.html
index 68f4cc1..85ee537 100644
--- a/test/dataZoom-scatter-hv.html
+++ b/test/dataZoom-scatter-hv.html
@@ -27,6 +27,7 @@ under the License.
     <body>
         <style>
             html, body, #main {
+                margin: 0;
                 width: 100%;
                 height: 100%;
             }
diff --git a/test/getOption.html b/test/getOption.html
index f1f6837..3d88731 100644
--- a/test/getOption.html
+++ b/test/getOption.html
@@ -142,10 +142,10 @@ under the License.
                             option.xAxis = option.yAxis;
                             option.yAxis = temp;
                             myChart.setOption(option);
-                            alert('error');
+                            console.log('error');
                         }
                         catch (e) {
-                            alert('ok');
+                            console.log('ok');
                         }
                     },
 
diff --git a/test/line-animation.html b/test/line-animation.html
index 5be2426..3864fc4 100644
--- a/test/line-animation.html
+++ b/test/line-animation.html
@@ -184,7 +184,7 @@ under the License.
                             data: data
                         }
                     ],
-                    animationDurationUpdate: 3000
+                    animationDurationUpdate: 2000
                 };
 
 
diff --git a/test/runTest/actions/__meta__.json 
b/test/runTest/actions/__meta__.json
index 0203ab8..8af1757 100644
--- a/test/runTest/actions/__meta__.json
+++ b/test/runTest/actions/__meta__.json
@@ -11,7 +11,7 @@
   "axis-multiple": 1,
   "axis-style": 2,
   "map-parallel": 1,
-  "map": 1,
+  "map": 2,
   "treemap-disk": 2,
   "axis": 1,
   "axisPosition": 2,
@@ -42,5 +42,90 @@
   "candlestickConnect": 4,
   "color-mix-aqi": 1,
   "connect-dynamic": 2,
-  "connect-manually": 1
+  "connect-manually": 1,
+  "connect": 1,
+  "connect2": 1,
+  "css-transform": 4,
+  "custom-children-remove": 1,
+  "custom-hexbin": 1,
+  "custom": 5,
+  "dataZoom-action": 4,
+  "dataZoom-axes": 4,
+  "dataZoom-axis-type": 3,
+  "dataZoom-clip": 3,
+  "dataZoom-extreme": 1,
+  "dataZoom-rainfall-connect": 1,
+  "dataZoom-rainfall-inside": 1,
+  "dataZoom-rainfall": 1,
+  "dataZoom-scatter-category": 2,
+  "dataZoom-scatter-hv-polar": 3,
+  "dataZoom-scatter-hv": 1,
+  "dataZoom-sync": 1,
+  "dataZoom-toolbox": 5,
+  "dataZoomHighPrecision": 3,
+  "dynamic-splitNumber": 1,
+  "ec-event": 4,
+  "funnel": 2,
+  "geo-map": 2,
+  "geoScatter": 1,
+  "getOption": 1,
+  "graph-grid": 1,
+  "graph-simple": 2,
+  "graph": 2,
+  "heatmap-map": 1,
+  "heatmap": 1,
+  "homepage3": 1,
+  "hoverStyle": 12,
+  "label-position": 1,
+  "largeLine-tooltip": 1,
+  "legend": 6,
+  "line-animation": 1,
+  "map-province": 1,
+  "mapWorld": 1,
+  "markArea": 1,
+  "media-dataZoom": 1,
+  "media-finance": 2,
+  "media-pie": 1,
+  "min-max-function": 1,
+  "parallel-aqi": 1,
+  "parallel-nutrients": 1,
+  "pictorial-repeat": 5,
+  "pie-action": 1,
+  "pie-calculable": 1,
+  "pie": 1,
+  "polarLine": 1,
+  "polarScatter": 1,
+  "radar3": 1,
+  "radar4": 1,
+  "radar2": 1,
+  "radar": 1,
+  "sankey-depth": 1,
+  "sankey-jump": 1,
+  "sankey-level": 1,
+  "scatter-random-stream-fix-axis": 1,
+  "scatter-single-axis": 3,
+  "scatterMatrix": 3,
+  "sunburst-book": 1,
+  "sunburst-canvas": 1,
+  "symbol2": 1,
+  "themeRiver": 1,
+  "timeScale": 1,
+  "timeScale2": 1,
+  "toolbox-textStyle": 1,
+  "toolbox-tooltip": 1,
+  "tooltip-axisPointer": 20,
+  "tooltip-cascade": 4,
+  "tooltip-event": 1,
+  "tooltip-link": 2,
+  "tooltip-rich": 1,
+  "tooltip-setOption": 2,
+  "tooltip": 10,
+  "tree-image": 1,
+  "tree-legend": 1,
+  "tree-radial": 1,
+  "treemap-disk2": 1,
+  "treemap-obama": 1,
+  "treemap-option": 1,
+  "treemap-option2": 1,
+  "visualMap-categories": 1
 }
\ No newline at end of file
diff --git a/test/runTest/actions/connect.json 
b/test/runTest/actions/connect.json
new file mode 100644
index 0000000..8b57e97
--- /dev/null
+++ b/test/runTest/actions/connect.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"screenshot","time":1275},{"type":"mousemove","time":1728,"x":216,"y":60},{"type":"mousemove","time":1928,"x":238,"y":166},{"type":"mousemove","time":2152,"x":231,"y":207},{"type":"mousemove","time":2447,"x":231,"y":207},{"type":"mousemove","time":3292,"x":231,"y":210},{"type":"mousemove","time":3495,"x":354,"y":496},{"type":"mousemove","time":3696,"x":355,"y":501},{"type":"mousemove","time":3913,"x":375,"y":508},{"type":"mousemove","time":4611,"x":375,
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/connect2.json 
b/test/runTest/actions/connect2.json
new file mode 100644
index 0000000..a68ac0a
--- /dev/null
+++ b/test/runTest/actions/connect2.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"screenshot","time":509},{"type":"mousemove","time":705,"x":343,"y":75},{"type":"mousemove","time":918,"x":338,"y":113},{"type":"mousemove","time":1138,"x":336,"y":127},{"type":"mousemove","time":1374,"x":336,"y":127},{"type":"mousemove","time":1574,"x":336,"y":127},{"type":"screenshot","time":2222},{"type":"mousemove","time":2640,"x":336,"y":126},{"type":"mousemove","time":2841,"x":336,"y":126},{"type":"mousemove","time":2875,"x":336,"y":125},{"type":"
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/css-transform.json 
b/test/runTest/actions/css-transform.json
new file mode 100644
index 0000000..5b038ee
--- /dev/null
+++ b/test/runTest/actions/css-transform.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":342,"x":354,"y":178},{"type":"mouseup","time":447,"x":354,"y":178},{"time":448,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":618,"x":361,"y":179},{"type":"mousemove","time":819,"x":404,"y":193},{"type":"mousemove","time":1028,"x":411,"y":201},{"type":"mousedown","time":1226,"x":411,"y":201},{"type":"mouseup","time":1319,"x":411,"y":201},{"time":1320,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":14
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/custom-children-remove.json 
b/test/runTest/actions/custom-children-remove.json
new file mode 100644
index 0000000..b8f3bd9
--- /dev/null
+++ b/test/runTest/actions/custom-children-remove.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":428,"x":208,"y":12},{"type":"mouseup","time":562,"x":208,"y":12},{"time":563,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":630,"x":209,"y":12},{"type":"mousemove","time":830,"x":282,"y":9},{"type":"mousedown","time":1077,"x":282,"y":9},{"type":"mouseup","time":1178,"x":282,"y":9},{"time":1179,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":1283,"x":282,"y":9},{"type":"mousemove","time":1483,"x":323,
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/custom-hexbin.json 
b/test/runTest/actions/custom-hexbin.json
new file mode 100644
index 0000000..d6a49ed
--- /dev/null
+++ b/test/runTest/actions/custom-hexbin.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":355,"x":668,"y":85},{"type":"mousemove","time":518,"x":664,"y":85},{"type":"mousemove","time":724,"x":611,"y":93},{"type":"mousemove","time":1152,"x":554,"y":98},{"type":"mouseup","time":1824,"x":554,"y":98},{"time":1825,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":2275,"x":554,"y":97},{"type":"mousemove","time":2478,"x":556,"y":88},{"type":"mousemove","time":2678,"x":556,"y":87},{"type":"mousemove","time":2778,"x"
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/custom.json b/test/runTest/actions/custom.json
new file mode 100644
index 0000000..7e80989
--- /dev/null
+++ b/test/runTest/actions/custom.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":408,"x":81,"y":475},{"type":"mousemove","time":570,"x":85,"y":475},{"type":"mousemove","time":770,"x":209,"y":479},{"type":"mouseup","time":1011,"x":209,"y":479},{"time":1012,"delay":400,"type":"screenshot-auto"},{"type":"mousedown","time":1403,"x":209,"y":479},{"type":"mousemove","time":1537,"x":210,"y":478},{"type":"mousemove","time":1738,"x":322,"y":473},{"type":"mousemove","time":1945,"x":325,"y":473},{"type":"mousemove","time":21
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/dataZoom-action.json 
b/test/runTest/actions/dataZoom-action.json
new file mode 100644
index 0000000..0d3acbe
--- /dev/null
+++ b/test/runTest/actions/dataZoom-action.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":367,"x":36,"y":54},{"type":"mouseup","time":464,"x":36,"y":54},{"time":465,"delay":1100,"type":"screenshot-auto"},{"type":"mousemove","time":2032,"x":36,"y":54},{"type":"mousemove","time":2232,"x":160,"y":56},{"type":"mousedown","time":2399,"x":160,"y":56},{"type":"mouseup","time":2497,"x":160,"y":56},{"time":2498,"delay":1100,"type":"screenshot-auto"},{"type":"mousemove","time":3623,"x":163,"y":56},{"type":"mousemove","time":3823,"x"
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/dataZoom-axes.json 
b/test/runTest/actions/dataZoom-axes.json
new file mode 100644
index 0000000..5313a80
--- /dev/null
+++ b/test/runTest/actions/dataZoom-axes.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":323,"x":778,"y":120},{"type":"mousemove","time":466,"x":778,"y":122},{"type":"mousemove","time":672,"x":775,"y":164},{"type":"mousemove","time":884,"x":777,"y":236},{"type":"mousemove","time":1102,"x":778,"y":294},{"type":"mousemove","time":1302,"x":773,"y":351},{"type":"mousemove","time":1505,"x":772,"y":357},{"type":"mousemove","time":1823,"x":772,"y":358},{"type":"mouseup","time":1857,"x":772,"y":358},{"time":1858,"delay":400,"type
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/dataZoom-axis-type.json 
b/test/runTest/actions/dataZoom-axis-type.json
new file mode 100644
index 0000000..4a4fc62
--- /dev/null
+++ b/test/runTest/actions/dataZoom-axis-type.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":318,"x":174,"y":276},{"type":"mousemove","time":452,"x":177,"y":276},{"type":"mousemove","time":652,"x":298,"y":283},{"type":"mousemove","time":854,"x":412,"y":291},{"type":"mousemove","time":1059,"x":415,"y":291},{"type":"mouseup","time":1293,"x":415,"y":291},{"time":1294,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":1335,"x":415,"y":291},{"type":"mousemove","time":1536,"x":315,"y":282},{"type":"mousemove","time":1
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/dataZoom-clip.json 
b/test/runTest/actions/dataZoom-clip.json
new file mode 100644
index 0000000..b4cbfb2
--- /dev/null
+++ b/test/runTest/actions/dataZoom-clip.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousemove","time":226,"x":308,"y":355},{"type":"mousemove","time":426,"x":333,"y":398},{"type":"mousemove","time":628,"x":308,"y":424},{"type":"mousemove","time":833,"x":305,"y":430},{"type":"mousedown","time":953,"x":305,"y":430},{"type":"mousemove","time":1045,"x":307,"y":430},{"type":"mousemove","time":1255,"x":396,"y":431},{"type":"mousemove","time":1462,"x":468,"y":435},{"type":"mousemove","time":1670,"x":476,"y":436},{"type":"mouseup","time":1753
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/dataZoom-extreme.json 
b/test/runTest/actions/dataZoom-extreme.json
new file mode 100644
index 0000000..660ebc6
--- /dev/null
+++ b/test/runTest/actions/dataZoom-extreme.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousemove","time":967,"x":544,"y":323},{"type":"mousemove","time":1167,"x":189,"y":212},{"type":"mousemove","time":1375,"x":151,"y":198},{"type":"mousedown","time":1492,"x":151,"y":198},{"type":"mousemove","time":1502,"x":151,"y":198},{"type":"mouseup","time":1559,"x":151,"y":198},{"time":1560,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":1710,"x":151,"y":198},{"type":"mousemove","time":1920,"x":157,"y":199},{"type":"mousemove","time
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/dataZoom-rainfall-connect.json 
b/test/runTest/actions/dataZoom-rainfall-connect.json
new file mode 100644
index 0000000..c4f186d
--- /dev/null
+++ b/test/runTest/actions/dataZoom-rainfall-connect.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":468,"x":138,"y":131},{"type":"mousemove","time":593,"x":140,"y":131},{"type":"mousemove","time":794,"x":274,"y":131},{"type":"mousemove","time":1081,"x":428,"y":124},{"type":"mouseup","time":1255,"x":428,"y":124},{"time":1256,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":1288,"x":428,"y":124},{"type":"mousemove","time":1377,"x":426,"y":124},{"type":"mousemove","time":1577,"x":206,"y":119},{"type":"mousedown","time":
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/dataZoom-rainfall-inside.json 
b/test/runTest/actions/dataZoom-rainfall-inside.json
new file mode 100644
index 0000000..82b4100
--- /dev/null
+++ b/test/runTest/actions/dataZoom-rainfall-inside.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":337,"x":291,"y":217},{"type":"mousemove","time":431,"x":293,"y":218},{"type":"mousemove","time":642,"x":411,"y":221},{"type":"mousemove","time":847,"x":577,"y":231},{"type":"mousemove","time":1057,"x":587,"y":231},{"type":"mouseup","time":1195,"x":587,"y":231},{"time":1196,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":1249,"x":587,"y":231},{"type":"mousemove","time":1458,"x":658,"y":236},{"type":"mousedown","time":1
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/dataZoom-rainfall.json 
b/test/runTest/actions/dataZoom-rainfall.json
new file mode 100644
index 0000000..55d5558
--- /dev/null
+++ b/test/runTest/actions/dataZoom-rainfall.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":348,"x":682,"y":577},{"type":"mousemove","time":540,"x":678,"y":577},{"type":"mousemove","time":754,"x":522,"y":583},{"type":"mousemove","time":956,"x":396,"y":585},{"type":"mousemove","time":1157,"x":382,"y":585},{"type":"mouseup","time":1247,"x":382,"y":585},{"time":1248,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":1806,"x":381,"y":585},{"type":"mousemove","time":2008,"x":251,"y":573},{"type":"mousemove","time":2
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/dataZoom-scatter-category.json 
b/test/runTest/actions/dataZoom-scatter-category.json
new file mode 100644
index 0000000..995d993
--- /dev/null
+++ b/test/runTest/actions/dataZoom-scatter-category.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":350,"x":780,"y":507},{"type":"mousemove","time":496,"x":780,"y":507},{"type":"mousemove","time":703,"x":729,"y":430},{"type":"mousemove","time":911,"x":705,"y":331},{"type":"mousemove","time":1112,"x":703,"y":277},{"type":"mousemove","time":1320,"x":703,"y":276},{"type":"mouseup","time":1520,"x":703,"y":276},{"time":1521,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":1962,"x":706,"y":273},{"type":"mousemove","time":2
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/dataZoom-scatter-hv-polar.json 
b/test/runTest/actions/dataZoom-scatter-hv-polar.json
new file mode 100644
index 0000000..615b4fe
--- /dev/null
+++ b/test/runTest/actions/dataZoom-scatter-hv-polar.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":774,"x":777,"y":159},{"type":"mousemove","time":901,"x":777,"y":161},{"type":"mousemove","time":1107,"x":768,"y":209},{"type":"mousemove","time":1307,"x":765,"y":272},{"type":"mousemove","time":1513,"x":764,"y":343},{"type":"mousemove","time":1722,"x":763,"y":370},{"type":"mousemove","time":1928,"x":763,"y":370},{"type":"mouseup","time":1935,"x":763,"y":370},{"time":1936,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time"
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/dataZoom-scatter-hv.json 
b/test/runTest/actions/dataZoom-scatter-hv.json
new file mode 100644
index 0000000..33b37f7
--- /dev/null
+++ b/test/runTest/actions/dataZoom-scatter-hv.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":273,"x":774,"y":386},{"type":"mousemove","time":393,"x":774,"y":386},{"type":"mousemove","time":595,"x":775,"y":328},{"type":"mousemove","time":805,"x":776,"y":296},{"type":"mousemove","time":1005,"x":776,"y":287},{"type":"mouseup","time":1131,"x":776,"y":287},{"time":1132,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":1168,"x":776,"y":287},{"type":"mousemove","time":1368,"x":781,"y":303},{"type":"mousedown","time":1
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/dataZoom-sync.json 
b/test/runTest/actions/dataZoom-sync.json
new file mode 100644
index 0000000..65c35d6
--- /dev/null
+++ b/test/runTest/actions/dataZoom-sync.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":203,"x":721,"y":405},{"type":"mousemove","time":355,"x":718,"y":405},{"type":"mousemove","time":557,"x":557,"y":412},{"type":"mousemove","time":758,"x":452,"y":415},{"type":"mouseup","time":972,"x":452,"y":415},{"time":973,"delay":400,"type":"screenshot-auto"},{"type":"mousedown","time":1540,"x":452,"y":415},{"type":"mousemove","time":1605,"x":450,"y":415},{"type":"mousemove","time":1808,"x":340,"y":417},{"type":"mousemove","time":200
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/dataZoom-toolbox.json 
b/test/runTest/actions/dataZoom-toolbox.json
new file mode 100644
index 0000000..3d8e570
--- /dev/null
+++ b/test/runTest/actions/dataZoom-toolbox.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":409,"x":770,"y":435},{"type":"mousemove","time":509,"x":770,"y":434},{"type":"mousemove","time":712,"x":770,"y":252},{"type":"mousemove","time":913,"x":768,"y":150},{"type":"mousemove","time":1115,"x":767,"y":139},{"type":"mouseup","time":1480,"x":767,"y":139},{"time":1481,"delay":1000,"type":"screenshot-auto"},{"type":"mousemove","time":2065,"x":766,"y":139},{"type":"mousemove","time":2265,"x":727,"y":130},{"type":"mousemove","time":
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/dataZoomHighPrecision.json 
b/test/runTest/actions/dataZoomHighPrecision.json
new file mode 100644
index 0000000..bfdd6e4
--- /dev/null
+++ b/test/runTest/actions/dataZoomHighPrecision.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":404,"x":670,"y":84},{"type":"mouseup","time":504,"x":670,"y":84},{"time":505,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":571,"x":669,"y":84},{"type":"mousemove","time":773,"x":448,"y":161},{"type":"mousemove","time":973,"x":420,"y":168},{"type":"mousedown","time":1254,"x":420,"y":168},{"type":"mousemove","time":1438,"x":423,"y":168},{"type":"mousemove","time":1642,"x":475,"y":173},{"type":"mousemove","time":1842,"
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/dynamic-splitNumber.json 
b/test/runTest/actions/dynamic-splitNumber.json
new file mode 100644
index 0000000..ba37399
--- /dev/null
+++ b/test/runTest/actions/dynamic-splitNumber.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":751,"x":786,"y":467},{"type":"mousemove","time":954,"x":786,"y":466},{"type":"mousemove","time":1157,"x":754,"y":390},{"type":"mousemove","time":1364,"x":722,"y":327},{"type":"mousemove","time":1565,"x":718,"y":316},{"type":"mouseup","time":1832,"x":718,"y":316},{"time":1833,"delay":400,"type":"screenshot-auto"},{"type":"mousedown","time":2447,"x":718,"y":316},{"type":"mousemove","time":2536,"x":718,"y":314},{"type":"mousemove","time"
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/ec-event.json 
b/test/runTest/actions/ec-event.json
new file mode 100644
index 0000000..9d7d165
--- /dev/null
+++ b/test/runTest/actions/ec-event.json
@@ -0,0 +1,192 @@
+[
+    {
+        "name": "Action 1",
+        "ops": [
+            { "type": "mousedown", "time": 624, "x": 397, "y": 304 },
+            { "type": "mouseup", "time": 715, "x": 397, "y": 304 },
+            { "type": "mousemove", "time": 1088, "x": 397, "y": 305 },
+            { "type": "mousemove", "time": 1288, "x": 409, "y": 451 },
+            { "type": "mousemove", "time": 1500, "x": 410, "y": 473 },
+            { "type": "mousemove", "time": 1701, "x": 409, "y": 483 },
+            { "type": "mousemove", "time": 1917, "x": 408, "y": 483 },
+            { "type": "mousedown", "time": 2161, "x": 408, "y": 483 },
+            { "type": "mouseup", "time": 2272, "x": 408, "y": 483 },
+            { "type": "mousemove", "time": 3142, "x": 410, "y": 482 },
+            { "type": "mousemove", "time": 3343, "x": 626, "y": 392 },
+            { "type": "mousemove", "time": 3553, "x": 694, "y": 332 },
+            { "type": "mousemove", "time": 3753, "x": 713, "y": 318 },
+            { "type": "mousemove", "time": 3953, "x": 734, "y": 320 },
+            { "type": "mousemove", "time": 4187, "x": 738, "y": 330 },
+            { "type": "mousemove", "time": 4424, "x": 738, "y": 330 },
+            { "type": "mousedown", "time": 4523, "x": 738, "y": 330 },
+            { "type": "mouseup", "time": 4639, "x": 738, "y": 330 },
+            { "type": "mousemove", "time": 6172, "x": 737, "y": 330 },
+            { "type": "mousemove", "time": 6373, "x": 227, "y": 306 },
+            { "type": "mousemove", "time": 6574, "x": 244, "y": 325 },
+            { "type": "mousemove", "time": 6774, "x": 261, "y": 343 },
+            { "type": "mousemove", "time": 6982, "x": 273, "y": 351 },
+            { "type": "mousedown", "time": 7421, "x": 273, "y": 351 },
+            { "type": "mouseup", "time": 7505, "x": 273, "y": 351 },
+            { "type": "mousemove", "time": 8619, "x": 273, "y": 349 },
+            { "type": "mousemove", "time": 8821, "x": 271, "y": 334 },
+            { "type": "mousemove", "time": 9024, "x": 271, "y": 332 },
+            { "type": "mousemove", "time": 9224, "x": 271, "y": 331 },
+            { "type": "mousedown", "time": 10031, "x": 271, "y": 331 },
+            { "type": "mouseup", "time": 10103, "x": 271, "y": 331 }
+        ],
+        "scrollY": 0,
+        "scrollX": 0,
+        "timestamp": 1568038506039
+    },
+    {
+        "name": "Action 2",
+        "ops": [
+            { "type": "mousedown", "time": 467, "x": 400, "y": 314 },
+            { "type": "mouseup", "time": 576, "x": 400, "y": 314 },
+            { "type": "mousemove", "time": 1000, "x": 399, "y": 320 },
+            { "type": "mousemove", "time": 1201, "x": 390, "y": 363 },
+            { "type": "mousemove", "time": 1410, "x": 394, "y": 384 },
+            { "type": "mousemove", "time": 1610, "x": 394, "y": 388 },
+            { "type": "mousemove", "time": 1867, "x": 401, "y": 395 },
+            { "type": "mousedown", "time": 1931, "x": 401, "y": 395 },
+            { "type": "mouseup", "time": 2044, "x": 401, "y": 395 },
+            { "type": "mousemove", "time": 2176, "x": 400, "y": 395 },
+            { "type": "mousemove", "time": 2377, "x": 309, "y": 398 },
+            { "type": "mousemove", "time": 2577, "x": 277, "y": 404 },
+            { "type": "mousemove", "time": 2777, "x": 261, "y": 464 },
+            { "type": "mousemove", "time": 2978, "x": 265, "y": 488 },
+            { "type": "mousemove", "time": 3181, "x": 271, "y": 479 },
+            { "type": "mousemove", "time": 3383, "x": 271, "y": 479 },
+            { "type": "mousedown", "time": 3398, "x": 271, "y": 479 },
+            { "type": "mouseup", "time": 3495, "x": 271, "y": 479 },
+            { "type": "mousemove", "time": 3560, "x": 271, "y": 479 },
+            { "type": "mousemove", "time": 4011, "x": 267, "y": 478 },
+            { "type": "mousemove", "time": 4212, "x": 146, "y": 423 },
+            { "type": "mousemove", "time": 4412, "x": 155, "y": 410 },
+            { "type": "mousemove", "time": 4616, "x": 144, "y": 405 },
+            { "type": "mousedown", "time": 4816, "x": 142, "y": 405 },
+            { "type": "mousemove", "time": 4833, "x": 142, "y": 405 },
+            { "type": "mouseup", "time": 4899, "x": 142, "y": 405 },
+            { "type": "mousemove", "time": 5481, "x": 142, "y": 406 },
+            { "type": "mousemove", "time": 5686, "x": 129, "y": 485 },
+            { "type": "mousemove", "time": 5887, "x": 127, "y": 494 },
+            { "type": "mousemove", "time": 6092, "x": 141, "y": 496 },
+            { "type": "mousemove", "time": 6292, "x": 146, "y": 495 },
+            { "type": "mousedown", "time": 6468, "x": 146, "y": 495 },
+            { "type": "mousemove", "time": 6502, "x": 146, "y": 495 },
+            { "type": "mouseup", "time": 6550, "x": 146, "y": 495 },
+            { "type": "mousemove", "time": 6835, "x": 147, "y": 497 },
+            { "type": "mousemove", "time": 7035, "x": 239, "y": 552 },
+            { "type": "mousemove", "time": 7243, "x": 265, "y": 558 },
+            { "type": "mousemove", "time": 7456, "x": 267, "y": 559 },
+            { "type": "mousedown", "time": 7773, "x": 267, "y": 559 },
+            { "type": "mouseup", "time": 7851, "x": 267, "y": 559 },
+            { "type": "mousemove", "time": 8002, "x": 266, "y": 558 },
+            { "type": "mousemove", "time": 8211, "x": 273, "y": 551 },
+            { "type": "mousemove", "time": 8411, "x": 640, "y": 407 },
+            { "type": "mousemove", "time": 8615, "x": 707, "y": 399 },
+            { "type": "mousemove", "time": 8818, "x": 736, "y": 399 },
+            { "type": "mousedown", "time": 8980, "x": 738, "y": 400 },
+            { "type": "mousemove", "time": 9054, "x": 738, "y": 400 },
+            { "type": "mouseup", "time": 9083, "x": 738, "y": 400 },
+            { "type": "mousemove", "time": 9277, "x": 737, "y": 400 },
+            { "type": "mousemove", "time": 9487, "x": 475, "y": 368 },
+            { "type": "mousemove", "time": 9687, "x": 16, "y": 291 },
+            { "type": "mousemove", "time": 9890, "x": 44, "y": 303 },
+            { "type": "mousemove", "time": 10091, "x": 57, "y": 318 },
+            { "type": "mousedown", "time": 10345, "x": 57, "y": 318 },
+            { "type": "mouseup", "time": 10450, "x": 57, "y": 318 },
+            { "type": "mousemove", "time": 11096, "x": 57, "y": 318 },
+            { "type": "mousemove", "time": 11296, "x": 57, "y": 318 }
+        ],
+        "scrollY": 513,
+        "scrollX": 0,
+        "timestamp": 1568038534148
+    },
+    {
+        "name": "Action 3",
+        "ops": [
+            { "type": "mousedown", "time": 525, "x": 160, "y": 196 },
+            { "type": "mouseup", "time": 615, "x": 160, "y": 196 },
+            { "type": "mousemove", "time": 811, "x": 160, "y": 197 },
+            { "type": "mousemove", "time": 1011, "x": 160, "y": 242 },
+            { "type": "mousemove", "time": 1225, "x": 160, "y": 243 },
+            { "type": "mousedown", "time": 1460, "x": 160, "y": 243 },
+            { "type": "mouseup", "time": 1559, "x": 160, "y": 243 },
+            { "type": "mousemove", "time": 1750, "x": 160, "y": 243 },
+            { "type": "mousemove", "time": 1950, "x": 162, "y": 288 },
+            { "type": "mousemove", "time": 2159, "x": 162, "y": 292 },
+            { "type": "mousedown", "time": 2453, "x": 162, "y": 292 },
+            { "type": "mouseup", "time": 2528, "x": 162, "y": 292 },
+            { "type": "mousemove", "time": 2685, "x": 162, "y": 292 },
+            { "type": "mousemove", "time": 2886, "x": 163, "y": 314 },
+            { "type": "mousemove", "time": 3094, "x": 163, "y": 319 },
+            { "type": "mousedown", "time": 3228, "x": 163, "y": 319 },
+            { "type": "mouseup", "time": 3319, "x": 163, "y": 319 },
+            { "type": "mousemove", "time": 3462, "x": 163, "y": 319 },
+            { "type": "mousemove", "time": 3662, "x": 166, "y": 338 },
+            { "type": "mousemove", "time": 3881, "x": 167, "y": 345 },
+            { "type": "mousemove", "time": 4081, "x": 167, "y": 350 },
+            { "type": "mousedown", "time": 4089, "x": 167, "y": 350 },
+            { "type": "mouseup", "time": 4200, "x": 167, "y": 350 },
+            { "type": "mousemove", "time": 4319, "x": 167, "y": 350 },
+            { "type": "mousemove", "time": 4520, "x": 167, "y": 351 },
+            { "type": "mousemove", "time": 4723, "x": 167, "y": 352 },
+            { "type": "mousemove", "time": 4823, "x": 167, "y": 353 },
+            { "type": "mousemove", "time": 5023, "x": 165, "y": 373 },
+            { "type": "mousemove", "time": 5238, "x": 166, "y": 382 },
+            { "type": "mousedown", "time": 5546, "x": 166, "y": 382 },
+            { "type": "mouseup", "time": 5641, "x": 166, "y": 382 }
+        ],
+        "scrollY": 1080,
+        "scrollX": 0,
+        "timestamp": 1568038549854
+    },
+    {
+        "name": "Action 4",
+        "ops": [
+            { "type": "mousedown", "time": 382, "x": 122, "y": 328 },
+            { "type": "mouseup", "time": 446, "x": 122, "y": 328 },
+            { "type": "mousemove", "time": 619, "x": 122, "y": 331 },
+            { "type": "mousemove", "time": 820, "x": 119, "y": 416 },
+            { "type": "mousemove", "time": 1031, "x": 119, "y": 416 },
+            { "type": "mousedown", "time": 1213, "x": 121, "y": 412 },
+            { "type": "mousemove", "time": 1231, "x": 121, "y": 412 },
+            { "type": "mouseup", "time": 1311, "x": 121, "y": 412 },
+            { "type": "mousemove", "time": 1379, "x": 121, "y": 414 },
+            { "type": "mousemove", "time": 1579, "x": 118, "y": 476 },
+            { "type": "mousemove", "time": 1783, "x": 119, "y": 474 },
+            { "type": "mousemove", "time": 1983, "x": 119, "y": 468 },
+            { "type": "mousedown", "time": 2046, "x": 119, "y": 468 },
+            { "type": "mouseup", "time": 2134, "x": 119, "y": 468 },
+            { "type": "mousemove", "time": 2269, "x": 119, "y": 467 },
+            { "type": "mousemove", "time": 2469, "x": 118, "y": 348 },
+            { "type": "mousemove", "time": 2679, "x": 119, "y": 326 },
+            { "type": "mousemove", "time": 2882, "x": 112, "y": 284 },
+            { "type": "mousedown", "time": 3046, "x": 112, "y": 284 },
+            { "type": "mouseup", "time": 3134, "x": 112, "y": 284 },
+            { "type": "mousemove", "time": 3715, "x": 112, "y": 284 },
+            { "type": "mousemove", "time": 3916, "x": 112, "y": 329 },
+            { "type": "mousemove", "time": 4131, "x": 112, "y": 331 },
+            { "type": "mousedown", "time": 4181, "x": 112, "y": 331 },
+            { "type": "mouseup", "time": 4265, "x": 112, "y": 331 },
+            { "type": "mousemove", "time": 4381, "x": 112, "y": 331 },
+            { "type": "mousemove", "time": 4533, "x": 112, "y": 333 },
+            { "type": "mousemove", "time": 4733, "x": 114, "y": 391 },
+            { "type": "mousemove", "time": 4950, "x": 114, "y": 416 },
+            { "type": "mousemove", "time": 5163, "x": 113, "y": 416 },
+            { "type": "mousedown", "time": 5252, "x": 113, "y": 416 },
+            { "type": "mouseup", "time": 5385, "x": 113, "y": 416 },
+            { "type": "mousemove", "time": 5489, "x": 114, "y": 421 },
+            { "type": "mousemove", "time": 5689, "x": 111, "y": 473 },
+            { "type": "mousemove", "time": 5911, "x": 111, "y": 472 },
+            { "type": "mousemove", "time": 6112, "x": 111, "y": 466 },
+            { "type": "mousedown", "time": 6208, "x": 111, "y": 466 },
+            { "type": "mouseup", "time": 6294, "x": 112, "y": 466 },
+            { "type": "mousemove", "time": 6429, "x": 112, "y": 466 }
+        ],
+        "scrollY": 1468,
+        "scrollX": 0,
+        "timestamp": 1568038566381
+    }
+]
diff --git a/test/runTest/actions/funnel.json b/test/runTest/actions/funnel.json
new file mode 100644
index 0000000..e8a34b6
--- /dev/null
+++ b/test/runTest/actions/funnel.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"valuechange","selector":"div.dg.ac>div.dg.main.a>ul>li.cr.string>div>div.c>select","value":"descending","time":1595,"target":"select"},{"time":1596,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":1885,"x":666,"y":41},{"type":"mousemove","time":2085,"x":665,"y":41},{"type":"valuechange","selector":"div.dg.ac>div.dg.main.a>ul>li.cr.string:nth-child(2)>div>div.c>select","value":"left","time":2995,"target":"select"},{"time":2996,"delay":40
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/geo-map.json 
b/test/runTest/actions/geo-map.json
new file mode 100644
index 0000000..88169bc
--- /dev/null
+++ b/test/runTest/actions/geo-map.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":750,"x":67,"y":8},{"type":"mouseup","time":835,"x":67,"y":8},{"time":836,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":1086,"x":67,"y":8},{"type":"mousemove","time":1291,"x":65,"y":29},{"type":"mousemove","time":1491,"x":65,"y":30},{"type":"mousedown","time":1667,"x":65,"y":30},{"type":"mouseup","time":1785,"x":65,"y":30},{"time":1786,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":2142,"x":65,"y":3
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/geoScatter.json 
b/test/runTest/actions/geoScatter.json
new file mode 100644
index 0000000..97b710e
--- /dev/null
+++ b/test/runTest/actions/geoScatter.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"screenshot","time":688},{"type":"mousedown","time":1186,"x":576,"y":336},{"type":"mousemove","time":1367,"x":577,"y":333},{"type":"mousemove","time":1571,"x":617,"y":272},{"type":"mousemove","time":1776,"x":660,"y":242},{"type":"mouseup","time":2011,"x":660,"y":242},{"time":2012,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":2254,"x":660,"y":242},{"type":"mousemove","time":2454,"x":660,"y":247},{"type":"mousemove","time":2671,"x":660,
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/getOption.json 
b/test/runTest/actions/getOption.json
new file mode 100644
index 0000000..b28a783
--- /dev/null
+++ b/test/runTest/actions/getOption.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":663,"x":47,"y":12},{"type":"mouseup","time":770,"x":47,"y":12},{"time":771,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":1443,"x":51,"y":12},{"type":"mousemove","time":1643,"x":109,"y":12},{"type":"mousemove","time":1853,"x":111,"y":11},{"type":"mousedown","time":1889,"x":111,"y":11},{"type":"mouseup","time":1973,"x":111,"y":11},{"time":1974,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":2656,"x":1
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/graph-grid.json 
b/test/runTest/actions/graph-grid.json
new file mode 100644
index 0000000..975e765
--- /dev/null
+++ b/test/runTest/actions/graph-grid.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":466,"x":755,"y":16},{"type":"mouseup","time":556,"x":755,"y":16},{"time":557,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":659,"x":753,"y":16},{"type":"mousemove","time":859,"x":409,"y":147},{"type":"mousemove","time":1059,"x":274,"y":165},{"type":"mousedown","time":1080,"x":274,"y":166},{"type":"mousemove","time":1262,"x":418,"y":275},{"type":"mousemove","time":1465,"x":552,"y":383},{"type":"mouseup","time":1825,"x
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/graph-simple.json 
b/test/runTest/actions/graph-simple.json
new file mode 100644
index 0000000..dc5d55d
--- /dev/null
+++ b/test/runTest/actions/graph-simple.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousemove","time":445,"x":418,"y":139},{"type":"mousemove","time":646,"x":391,"y":174},{"type":"mousemove","time":856,"x":389,"y":181},{"type":"mousemove","time":977,"x":390,"y":181},{"type":"mousemove","time":1177,"x":395,"y":184},{"type":"mousemove","time":1384,"x":396,"y":184},{"type":"mousemove","time":1640,"x":396,"y":184},{"type":"screenshot","time":2026},{"type":"mousemove","time":2567,"x":396,"y":184},{"type":"mousemove","time":2767,"x":408,"y"
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/graph.json b/test/runTest/actions/graph.json
new file mode 100644
index 0000000..634b1f2
--- /dev/null
+++ b/test/runTest/actions/graph.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"valuechange","selector":"div.dg.ac>div.dg.main.a>ul>li.cr.string>div>div.c>select","value":"circular","time":1630,"target":"select"},{"time":1631,"delay":1500,"type":"screenshot-auto"},{"type":"mousemove","time":2290,"x":681,"y":21},{"type":"mousemove","time":2529,"x":683,"y":14},{"type":"mousemove","time":2797,"x":684,"y":13},{"type":"valuechange","selector":"div.dg.ac>div.dg.main.a>ul>li.cr.string>div>div.c>select","value":"none","time":4351,"target"
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/heatmap-map.json 
b/test/runTest/actions/heatmap-map.json
new file mode 100644
index 0000000..aa00b2b
--- /dev/null
+++ b/test/runTest/actions/heatmap-map.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":368,"x":67,"y":492},{"type":"mouseup","time":461,"x":67,"y":492},{"time":462,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":687,"x":67,"y":493},{"type":"mousemove","time":891,"x":63,"y":512},{"type":"mousedown","time":1427,"x":63,"y":512},{"type":"mouseup","time":1537,"x":63,"y":512},{"time":1538,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":1805,"x":63,"y":513},{"type":"mousemove","time":2005,"x":
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/heatmap.json 
b/test/runTest/actions/heatmap.json
new file mode 100644
index 0000000..e3cab3d
--- /dev/null
+++ b/test/runTest/actions/heatmap.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousemove","time":460,"x":6,"y":476},{"type":"mousemove","time":663,"x":11,"y":497},{"type":"mousemove","time":863,"x":11,"y":505},{"type":"mousemove","time":1132,"x":11,"y":505},{"type":"mousedown","time":1165,"x":11,"y":505},{"type":"mouseup","time":1279,"x":11,"y":505},{"time":1280,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":2295,"x":11,"y":504},{"type":"mousemove","time":2495,"x":46,"y":441},{"type":"mousemove","time":2700,"x":
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/homepage3.json 
b/test/runTest/actions/homepage3.json
new file mode 100644
index 0000000..2388a6e
--- /dev/null
+++ b/test/runTest/actions/homepage3.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousemove","time":277,"x":272,"y":333},{"type":"mousemove","time":478,"x":317,"y":341},{"type":"screenshot","time":1277},{"type":"mousemove","time":1683,"x":320,"y":341},{"type":"mousemove","time":1886,"x":463,"y":349},{"type":"mousemove","time":2087,"x":469,"y":350},{"type":"screenshot","time":3314},{"type":"mousemove","time":4136,"x":469,"y":350},{"type":"mousemove","time":4338,"x":452,"y":298},{"type":"mousemove","time":4540,"x":386,"y":215},{"type"
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/hoverStyle.json 
b/test/runTest/actions/hoverStyle.json
new file mode 100644
index 0000000..7bfb26e
--- /dev/null
+++ b/test/runTest/actions/hoverStyle.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousemove","time":381,"x":326,"y":308},{"type":"mousemove","time":582,"x":363,"y":304},{"type":"mousemove","time":783,"x":363,"y":303},{"type":"mousedown","time":897,"x":363,"y":303},{"type":"mouseup","time":987,"x":363,"y":303},{"time":988,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":1098,"x":372,"y":303},{"type":"mousemove","time":1300,"x":483,"y":306},{"type":"mousemove","time":1501,"x":512,"y":309},{"type":"mousemove","time":170
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/label-position.json 
b/test/runTest/actions/label-position.json
new file mode 100644
index 0000000..142fcbd
--- /dev/null
+++ b/test/runTest/actions/label-position.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"valuechange","selector":"div.dg.ac>div.dg.main.a>ul>li.cr.string>div>div.c>select","value":"left","time":2914,"target":"select"},{"time":2915,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":2922,"x":659,"y":46},{"type":"mousemove","time":3124,"x":658,"y":47},{"type":"mousemove","time":3331,"x":657,"y":45},{"type":"mousedown","time":3397,"x":657,"y":45},{"type":"mousemove","time":3467,"x":658,"y":45},{"type":"mousemove","time":3668,"x":
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/largeLine-tooltip.json 
b/test/runTest/actions/largeLine-tooltip.json
new file mode 100644
index 0000000..41e6b60
--- /dev/null
+++ b/test/runTest/actions/largeLine-tooltip.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":797,"x":168,"y":360},{"type":"mouseup","time":886,"x":168,"y":360},{"time":887,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":1112,"x":169,"y":360},{"type":"mousemove","time":1319,"x":284,"y":364},{"type":"mousemove","time":1543,"x":400,"y":374},{"type":"mousedown","time":1757,"x":400,"y":374},{"type":"mouseup","time":1872,"x":400,"y":374},{"time":1873,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/legend.json b/test/runTest/actions/legend.json
new file mode 100644
index 0000000..4d8ea33
--- /dev/null
+++ b/test/runTest/actions/legend.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":287,"x":398,"y":538},{"type":"mousemove","time":321,"x":398,"y":538},{"type":"mousemove","time":534,"x":320,"y":484},{"type":"mousemove","time":743,"x":196,"y":432},{"type":"mouseup","time":1133,"x":196,"y":432},{"time":1134,"delay":400,"type":"screenshot-auto"},{"type":"mousedown","time":1574,"x":196,"y":432},{"type":"mousemove","time":1646,"x":200,"y":432},{"type":"mousemove","time":1846,"x":372,"y":443},{"type":"mousemove","time":2
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/line-animation.json 
b/test/runTest/actions/line-animation.json
new file mode 100644
index 0000000..97ff757
--- /dev/null
+++ b/test/runTest/actions/line-animation.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":596,"x":28,"y":16},{"type":"mouseup","time":698,"x":28,"y":16},{"time":699,"delay":2000,"type":"screenshot-auto"}],"scrollY":0,"scrollX":0,"timestamp":1568042380534}]
\ No newline at end of file
diff --git a/test/runTest/actions/map-parallel.json 
b/test/runTest/actions/map-parallel.json
index 0ea2ac2..892fe47 100644
--- a/test/runTest/actions/map-parallel.json
+++ b/test/runTest/actions/map-parallel.json
@@ -1 +1 @@
-[{"name":"Action 
1","ops":[{"type":"mousedown","time":904,"x":444,"y":378},{"type":"mousemove","time":1002,"x":444,"y":378},{"type":"mousemove","time":1260,"x":444,"y":414},{"type":"mousemove","time":1526,"x":444,"y":418},{"type":"mouseup","time":2277,"x":444,"y":418},{"time":2278,"type":"screenshot-auto"},{"type":"mousemove","time":3162,"x":444,"y":418},{"type":"mousemove","time":3362,"x":446,"y":442},{"type":"mousedown","time":3545,"x":446,"y":443},{"type":"mousemove","time":3571,"x":4
 [...]
\ No newline at end of file
+[{"name":"Action 
1","ops":[{"type":"mousemove","time":13,"x":509,"y":79},{"type":"mousemove","time":320,"x":514,"y":77},{"type":"mousemove","time":520,"x":628,"y":51},{"type":"mousemove","time":721,"x":675,"y":17},{"type":"mousemove","time":922,"x":692,"y":12},{"type":"mousedown","time":1121,"x":693,"y":12},{"type":"mousemove","time":1171,"x":693,"y":12},{"type":"mouseup","time":1210,"x":693,"y":12},{"time":1211,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":1372,"x":60
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/map-province.json 
b/test/runTest/actions/map-province.json
new file mode 100644
index 0000000..d022600
--- /dev/null
+++ b/test/runTest/actions/map-province.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":329,"x":766,"y":244},{"type":"mouseup","time":413,"x":766,"y":244},{"time":414,"delay":400,"type":"screenshot-auto"},{"type":"mousedown","time":871,"x":766,"y":244},{"type":"mouseup","time":953,"x":766,"y":244},{"time":954,"delay":400,"type":"screenshot-auto"},{"type":"mousedown","time":1516,"x":766,"y":244},{"type":"mouseup","time":1612,"x":766,"y":244},{"time":1613,"delay":400,"type":"screenshot-auto"},{"type":"mousedown","time":212
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/map.json b/test/runTest/actions/map.json
index 7f31ff0..70001b5 100644
--- a/test/runTest/actions/map.json
+++ b/test/runTest/actions/map.json
@@ -1 +1 @@
-[{"name":"Action 
1","ops":[{"type":"mousemove","time":672,"x":405,"y":355},{"type":"mousemove","time":873,"x":401,"y":379},{"type":"mousemove","time":1083,"x":406,"y":414},{"type":"mousemove","time":1293,"x":462,"y":445},{"type":"mousemove","time":1493,"x":491,"y":450},{"type":"mousemove","time":1698,"x":537,"y":439},{"type":"mousemove","time":1899,"x":552,"y":404},{"type":"mousemove","time":2100,"x":538,"y":376},{"type":"mousemove","time":2313,"x":491,"y":345},{"type":"mousemove","time"
 [...]
\ No newline at end of file
+[{"name":"Action 
1","ops":[{"type":"mousemove","time":672,"x":405,"y":355},{"type":"mousemove","time":873,"x":401,"y":379},{"type":"mousemove","time":1083,"x":406,"y":414},{"type":"mousemove","time":1293,"x":462,"y":445},{"type":"mousemove","time":1493,"x":491,"y":450},{"type":"mousemove","time":1698,"x":537,"y":439},{"type":"mousemove","time":1899,"x":552,"y":404},{"type":"mousemove","time":2100,"x":538,"y":376},{"type":"mousemove","time":2313,"x":491,"y":345},{"type":"mousemove","time"
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/mapWorld.json 
b/test/runTest/actions/mapWorld.json
new file mode 100644
index 0000000..8d706d8
--- /dev/null
+++ b/test/runTest/actions/mapWorld.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":2209,"x":33,"y":429},{"type":"mouseup","time":2319,"x":33,"y":429},{"time":2320,"delay":400,"type":"screenshot-auto"},{"type":"mousedown","time":2984,"x":33,"y":429},{"type":"mousemove","time":3113,"x":33,"y":430},{"type":"mousemove","time":3315,"x":32,"y":461},{"type":"mousemove","time":3587,"x":33,"y":493},{"type":"mousemove","time":3831,"x":34,"y":512},{"type":"mouseup","time":4158,"x":34,"y":512},{"time":4159,"delay":400,"type":"s
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/markArea.json 
b/test/runTest/actions/markArea.json
new file mode 100644
index 0000000..d4b5566
--- /dev/null
+++ b/test/runTest/actions/markArea.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":1675,"x":365,"y":18},{"type":"mouseup","time":1774,"x":365,"y":18},{"time":1775,"delay":1000,"type":"screenshot-auto"},{"type":"mousedown","time":2690,"x":365,"y":18},{"type":"mouseup","time":2782,"x":365,"y":18},{"time":2783,"delay":1000,"type":"screenshot-auto"},{"type":"mousemove","time":3192,"x":366,"y":18},{"type":"mousemove","time":3393,"x":414,"y":21},{"type":"mousemove","time":3600,"x":414,"y":21},{"type":"mousedown","time":38
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/media-dataZoom.json 
b/test/runTest/actions/media-dataZoom.json
new file mode 100644
index 0000000..2881995
--- /dev/null
+++ b/test/runTest/actions/media-dataZoom.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":1255,"x":704,"y":553},{"type":"mousemove","time":1325,"x":704,"y":551},{"type":"mousemove","time":1531,"x":709,"y":450},{"type":"mousemove","time":1741,"x":727,"y":370},{"type":"mousemove","time":1949,"x":727,"y":365},{"type":"mouseup","time":2099,"x":727,"y":365},{"time":2100,"delay":400,"type":"screenshot-auto"},{"type":"mousedown","time":2583,"x":727,"y":365},{"type":"mousemove","time":2660,"x":724,"y":365},{"type":"mousemove","tim
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/media-finance.json 
b/test/runTest/actions/media-finance.json
new file mode 100644
index 0000000..8e3350d
--- /dev/null
+++ b/test/runTest/actions/media-finance.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":1057,"x":165,"y":506},{"type":"mouseup","time":1139,"x":165,"y":506},{"time":1140,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":2261,"x":169,"y":506},{"type":"mousemove","time":2461,"x":194,"y":508},{"type":"mousemove","time":2666,"x":214,"y":508},{"type":"mousemove","time":2901,"x":226,"y":504},{"type":"mousedown","time":3105,"x":226,"y":504},{"type":"mouseup","time":3218,"x":226,"y":504},{"time":3219,"delay":400,"
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/media-pie.json 
b/test/runTest/actions/media-pie.json
new file mode 100644
index 0000000..0bc341a
--- /dev/null
+++ b/test/runTest/actions/media-pie.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":407,"x":705,"y":561},{"type":"mousemove","time":558,"x":701,"y":554},{"type":"mousemove","time":758,"x":614,"y":399},{"type":"mousemove","time":959,"x":613,"y":388},{"type":"mouseup","time":1104,"x":613,"y":388},{"time":1105,"delay":400,"type":"screenshot-auto"},{"type":"mousedown","time":1665,"x":613,"y":388},{"type":"mousemove","time":1744,"x":612,"y":388},{"type":"mousemove","time":1952,"x":454,"y":360},{"type":"mousemove","time":2
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/min-max-function.json 
b/test/runTest/actions/min-max-function.json
new file mode 100644
index 0000000..cfd0cc1
--- /dev/null
+++ b/test/runTest/actions/min-max-function.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":355,"x":129,"y":377},{"type":"mousemove","time":489,"x":132,"y":377},{"type":"mousemove","time":689,"x":251,"y":381},{"type":"mousemove","time":889,"x":363,"y":383},{"type":"mouseup","time":1099,"x":363,"y":383},{"time":1100,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":1790,"x":363,"y":382},{"type":"mousemove","time":1990,"x":361,"y":380},{"type":"mousedown","time":2013,"x":361,"y":380},{"type":"mousemove","time":2
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/parallel-aqi.json 
b/test/runTest/actions/parallel-aqi.json
new file mode 100644
index 0000000..d0d038c
--- /dev/null
+++ b/test/runTest/actions/parallel-aqi.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":633,"x":353,"y":429},{"type":"mousemove","time":753,"x":353,"y":427},{"type":"mousemove","time":979,"x":356,"y":390},{"type":"mousemove","time":1182,"x":356,"y":380},{"type":"mouseup","time":1329,"x":356,"y":380},{"time":1330,"delay":1000,"type":"screenshot-auto"},{"type":"mousemove","time":1370,"x":356,"y":381},{"type":"mousemove","time":1570,"x":359,"y":404},{"type":"mousemove","time":1770,"x":359,"y":405},{"type":"mousemove","time"
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/parallel-nutrients.json 
b/test/runTest/actions/parallel-nutrients.json
new file mode 100644
index 0000000..6f195f2
--- /dev/null
+++ b/test/runTest/actions/parallel-nutrients.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousemove","time":183,"x":486,"y":483},{"type":"mousedown","time":379,"x":484,"y":482},{"type":"mousemove","time":393,"x":486,"y":482},{"type":"mousemove","time":598,"x":621,"y":483},{"type":"mousemove","time":807,"x":647,"y":482},{"type":"mouseup","time":879,"x":647,"y":482},{"time":880,"delay":2000,"type":"screenshot-auto"},{"type":"mousemove","time":954,"x":645,"y":482},{"type":"mousemove","time":1157,"x":634,"y":483},{"type":"mousemove","time":1358
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/pictorial-repeat.json 
b/test/runTest/actions/pictorial-repeat.json
new file mode 100644
index 0000000..f60a790
--- /dev/null
+++ b/test/runTest/actions/pictorial-repeat.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":497,"x":426,"y":71},{"type":"mouseup","time":590,"x":426,"y":71},{"time":591,"delay":600,"type":"screenshot-auto"},{"type":"mousemove","time":653,"x":426,"y":71},{"type":"mousemove","time":875,"x":488,"y":74},{"type":"mousemove","time":1111,"x":521,"y":74},{"type":"mousemove","time":1393,"x":521,"y":74},{"type":"mousemove","time":1627,"x":521,"y":74},{"type":"mousedown","time":1666,"x":521,"y":74},{"type":"mouseup","time":1760,"x":521
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/pie-action.json 
b/test/runTest/actions/pie-action.json
new file mode 100644
index 0000000..930c91c
--- /dev/null
+++ b/test/runTest/actions/pie-action.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":575,"x":12,"y":44},{"type":"mouseup","time":647,"x":12,"y":44},{"time":648,"delay":600,"type":"screenshot-auto"},{"type":"mousemove","time":1286,"x":14,"y":44},{"type":"mousemove","time":1493,"x":43,"y":42},{"type":"mousemove","time":1710,"x":48,"y":41},{"type":"mousemove","time":1821,"x":45,"y":42},{"type":"mousedown","time":1976,"x":37,"y":42},{"type":"mousemove","time":2026,"x":37,"y":42},{"type":"mouseup","time":2079,"x":37,"y":42
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/pie-calculable.json 
b/test/runTest/actions/pie-calculable.json
new file mode 100644
index 0000000..e9f534f
--- /dev/null
+++ b/test/runTest/actions/pie-calculable.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousemove","time":76,"x":253,"y":213},{"type":"mousedown","time":247,"x":253,"y":213},{"type":"mousemove","time":320,"x":252,"y":212},{"type":"mousemove","time":521,"x":158,"y":177},{"type":"mousemove","time":727,"x":125,"y":159},{"type":"mouseup","time":942,"x":121,"y":156},{"time":943,"delay":600,"type":"screenshot-auto"},{"type":"mousemove","time":948,"x":121,"y":156},{"type":"mousemove","time":1437,"x":136,"y":163},{"type":"mousemove","time":1646,"
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/pie.json b/test/runTest/actions/pie.json
new file mode 100644
index 0000000..f22c204
--- /dev/null
+++ b/test/runTest/actions/pie.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"valuechange","selector":"div.dg.ac>div.dg.main.a>ul>li.cr.string>div>div.c>select","value":"inside","time":1802,"target":"select"},{"time":1803,"delay":600,"type":"screenshot-auto"},{"type":"mousemove","time":2414,"x":654,"y":30},{"type":"mousemove","time":2615,"x":642,"y":22},{"type":"mousemove","time":2823,"x":638,"y":19},{"type":"mousemove","time":3040,"x":637,"y":17},{"type":"mousedown","time":3140,"x":637,"y":17},{"type":"mouseup","time":3240,"x":
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/polarLine.json 
b/test/runTest/actions/polarLine.json
new file mode 100644
index 0000000..152495f
--- /dev/null
+++ b/test/runTest/actions/polarLine.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousemove","time":977,"x":448,"y":195},{"type":"mousemove","time":1177,"x":494,"y":218},{"type":"mousemove","time":1377,"x":508,"y":259},{"type":"mousemove","time":1578,"x":511,"y":315},{"type":"mousemove","time":1778,"x":497,"y":353},{"type":"mousemove","time":1978,"x":472,"y":378},{"type":"mousemove","time":2178,"x":387,"y":402},{"type":"mousemove","time":2378,"x":318,"y":396},{"type":"mousemove","time":2578,"x":287,"y":381},{"type":"mousemove","time
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/polarScatter.json 
b/test/runTest/actions/polarScatter.json
new file mode 100644
index 0000000..5306239
--- /dev/null
+++ b/test/runTest/actions/polarScatter.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":695,"x":471,"y":20},{"type":"mouseup","time":782,"x":471,"y":20},{"time":783,"delay":1000,"type":"screenshot-auto"},{"type":"mousedown","time":1697,"x":471,"y":20},{"type":"mouseup","time":1811,"x":471,"y":20},{"time":1812,"delay":1000,"type":"screenshot-auto"},{"type":"mousemove","time":2239,"x":469,"y":20},{"type":"mousemove","time":2440,"x":424,"y":21},{"type":"mousemove","time":2652,"x":422,"y":21},{"type":"mousedown","time":2668,
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/radar.json b/test/runTest/actions/radar.json
new file mode 100644
index 0000000..a7cb593
--- /dev/null
+++ b/test/runTest/actions/radar.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":340,"x":163,"y":20},{"type":"mouseup","time":450,"x":163,"y":20},{"time":451,"delay":500,"type":"screenshot-auto"},{"type":"mousemove","time":510,"x":168,"y":20},{"type":"mousemove","time":711,"x":320,"y":20},{"type":"mousemove","time":916,"x":339,"y":19},{"type":"mousedown","time":967,"x":339,"y":19},{"type":"mouseup","time":1060,"x":339,"y":19},{"time":1061,"delay":500,"type":"screenshot-auto"},{"type":"mousemove","time":1161,"x":34
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/radar2.json b/test/runTest/actions/radar2.json
new file mode 100644
index 0000000..94dea8c
--- /dev/null
+++ b/test/runTest/actions/radar2.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"screenshot","time":988},{"type":"mousemove","time":1182,"x":193,"y":18},{"type":"mousemove","time":1387,"x":234,"y":40},{"type":"mousemove","time":1606,"x":241,"y":43},{"type":"screenshot","time":2473},{"type":"mousedown","time":3089,"x":241,"y":43},{"type":"mouseup","time":3166,"x":241,"y":43},{"time":3167,"delay":500,"type":"screenshot-auto"}],"scrollY":0,"scrollX":0,"timestamp":1568043179047}]
\ No newline at end of file
diff --git a/test/runTest/actions/radar3.json b/test/runTest/actions/radar3.json
new file mode 100644
index 0000000..bda3a98
--- /dev/null
+++ b/test/runTest/actions/radar3.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":493,"x":232,"y":18},{"type":"mouseup","time":586,"x":232,"y":18},{"time":587,"delay":500,"type":"screenshot-auto"},{"type":"mousemove","time":803,"x":241,"y":18},{"type":"mousemove","time":1008,"x":307,"y":20},{"type":"mousedown","time":1144,"x":307,"y":20},{"type":"mouseup","time":1244,"x":307,"y":20},{"time":1245,"delay":500,"type":"screenshot-auto"},{"type":"mousemove","time":1353,"x":308,"y":20},{"type":"mousemove","time":1553,"x"
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/radar4.json b/test/runTest/actions/radar4.json
new file mode 100644
index 0000000..c39cac9
--- /dev/null
+++ b/test/runTest/actions/radar4.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousemove","time":2255,"x":48,"y":20},{"type":"mousemove","time":2456,"x":48,"y":22},{"type":"screenshot","time":3105},{"type":"mousedown","time":3680,"x":48,"y":22},{"type":"mouseup","time":3777,"x":48,"y":22},{"time":3778,"delay":500,"type":"screenshot-auto"},{"type":"mousemove","time":4324,"x":50,"y":22},{"type":"mousemove","time":4524,"x":88,"y":20},{"type":"mousedown","time":4689,"x":91,"y":19},{"type":"mousemove","time":4748,"x":91,"y":19},{"type
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/sankey-depth.json 
b/test/runTest/actions/sankey-depth.json
new file mode 100644
index 0000000..ede22c1
--- /dev/null
+++ b/test/runTest/actions/sankey-depth.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousemove","time":255,"x":33,"y":417},{"type":"mousemove","time":455,"x":56,"y":414},{"type":"mousemove","time":660,"x":57,"y":414},{"type":"mousemove","time":1223,"x":56,"y":414},{"type":"screenshot","time":1278},{"type":"mousemove","time":1423,"x":94,"y":413},{"type":"mousemove","time":1623,"x":195,"y":410},{"type":"mousemove","time":2457,"x":195,"y":409},{"type":"screenshot","time":2474},{"type":"mousemove","time":2657,"x":203,"y":341},{"type":"mous
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/sankey-jump.json 
b/test/runTest/actions/sankey-jump.json
new file mode 100644
index 0000000..c0d450a
--- /dev/null
+++ b/test/runTest/actions/sankey-jump.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousemove","time":520,"x":391,"y":421},{"type":"mousemove","time":721,"x":454,"y":425},{"type":"mousemove","time":928,"x":454,"y":425},{"type":"mousedown","time":943,"x":454,"y":425},{"type":"mouseup","time":1037,"x":454,"y":425},{"time":1038,"delay":500,"type":"screenshot-auto"},{"type":"mousemove","time":1570,"x":453,"y":425},{"type":"mousemove","time":1770,"x":405,"y":421},{"type":"mousemove","time":1979,"x":399,"y":421},{"type":"mousedown","time":2
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/sankey-level.json 
b/test/runTest/actions/sankey-level.json
new file mode 100644
index 0000000..c998d0e
--- /dev/null
+++ b/test/runTest/actions/sankey-level.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousemove","time":454,"x":52,"y":280},{"type":"mousemove","time":655,"x":57,"y":280},{"type":"mousemove","time":863,"x":57,"y":280},{"type":"mousedown","time":869,"x":57,"y":280},{"type":"mousemove","time":990,"x":57,"y":281},{"type":"mousemove","time":1213,"x":51,"y":325},{"type":"mousemove","time":1433,"x":47,"y":360},{"type":"mousemove","time":1634,"x":48,"y":371},{"type":"mouseup","time":1748,"x":48,"y":371},{"time":1749,"delay":500,"type":"screens
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/scatter-random-stream-fix-axis.json 
b/test/runTest/actions/scatter-random-stream-fix-axis.json
new file mode 100644
index 0000000..fd4f57f
--- /dev/null
+++ b/test/runTest/actions/scatter-random-stream-fix-axis.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":223,"x":434,"y":582},{"type":"mousemove","time":284,"x":432,"y":582},{"type":"mousemove","time":484,"x":369,"y":585},{"type":"mousemove","time":692,"x":356,"y":585},{"type":"mouseup","time":731,"x":356,"y":585},{"time":732,"delay":1000,"type":"screenshot-auto"},{"type":"mousemove","time":834,"x":356,"y":585},{"type":"mousemove","time":1041,"x":381,"y":581},{"type":"mousemove","time":1252,"x":376,"y":579},{"type":"mousemove","time":145
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/scatter-single-axis.json 
b/test/runTest/actions/scatter-single-axis.json
new file mode 100644
index 0000000..f9b969a
--- /dev/null
+++ b/test/runTest/actions/scatter-single-axis.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":564,"x":37,"y":327},{"type":"mousemove","time":719,"x":39,"y":328},{"type":"mousemove","time":926,"x":61,"y":328},{"type":"mousemove","time":1135,"x":207,"y":323},{"type":"mousemove","time":1335,"x":384,"y":323},{"type":"mousemove","time":1536,"x":513,"y":322},{"type":"mousemove","time":1740,"x":576,"y":323},{"type":"mousemove","time":1942,"x":615,"y":323},{"type":"mouseup","time":2225,"x":615,"y":323},{"time":2226,"delay":200,"type":
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/scatterMatrix.json 
b/test/runTest/actions/scatterMatrix.json
new file mode 100644
index 0000000..b0820d2
--- /dev/null
+++ b/test/runTest/actions/scatterMatrix.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":654,"x":699,"y":14},{"type":"mouseup","time":763,"x":699,"y":14},{"time":764,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":958,"x":699,"y":14},{"type":"mousemove","time":1189,"x":618,"y":54},{"type":"mousedown","time":1389,"x":593,"y":57},{"type":"mousemove","time":1405,"x":593,"y":57},{"type":"mousemove","time":1683,"x":666,"y":116},{"type":"mousemove","time":1956,"x":692,"y":139},{"type":"mousemove","time":2158,"x
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/sunburst-book.json 
b/test/runTest/actions/sunburst-book.json
new file mode 100644
index 0000000..b60c7fd
--- /dev/null
+++ b/test/runTest/actions/sunburst-book.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousemove","time":331,"x":436,"y":235},{"type":"mousemove","time":532,"x":429,"y":269},{"type":"mousemove","time":744,"x":445,"y":247},{"type":"mousedown","time":923,"x":443,"y":234},{"type":"mousemove","time":946,"x":443,"y":234},{"type":"mouseup","time":1005,"x":443,"y":234},{"time":1006,"delay":600,"type":"screenshot-auto"},{"type":"mousemove","time":1382,"x":443,"y":234},{"type":"mousemove","time":1589,"x":442,"y":235},{"type":"mousemove","time":18
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/sunburst-canvas.json 
b/test/runTest/actions/sunburst-canvas.json
new file mode 100644
index 0000000..5455669
--- /dev/null
+++ b/test/runTest/actions/sunburst-canvas.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":490,"x":394,"y":281},{"type":"mouseup","time":589,"x":394,"y":281},{"time":590,"delay":600,"type":"screenshot-auto"},{"type":"mousemove","time":1499,"x":395,"y":279},{"type":"mousemove","time":1700,"x":407,"y":254},{"type":"mousedown","time":1779,"x":407,"y":254},{"type":"mouseup","time":1861,"x":407,"y":254},{"time":1862,"delay":600,"type":"screenshot-auto"},{"type":"mousemove","time":1900,"x":407,"y":254},{"type":"mousemove","time":
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/symbol2.json 
b/test/runTest/actions/symbol2.json
new file mode 100644
index 0000000..629dd90
--- /dev/null
+++ b/test/runTest/actions/symbol2.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousemove","time":339,"x":40,"y":109},{"type":"mousemove","time":540,"x":57,"y":84},{"type":"mousemove","time":745,"x":59,"y":77},{"type":"mousedown","time":778,"x":59,"y":77},{"type":"mouseup","time":863,"x":59,"y":77},{"time":864,"delay":600,"type":"screenshot-auto"},{"type":"mousemove","time":1306,"x":72,"y":77},{"type":"mousemove","time":1506,"x":232,"y":76},{"type":"mousemove","time":1714,"x":236,"y":75},{"type":"mousedown","time":1832,"x":236,"y"
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/themeRiver.json 
b/test/runTest/actions/themeRiver.json
new file mode 100644
index 0000000..62828c2
--- /dev/null
+++ b/test/runTest/actions/themeRiver.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousemove","time":851,"x":238,"y":139},{"type":"mousemove","time":1051,"x":228,"y":168},{"type":"mousemove","time":1259,"x":227,"y":175},{"type":"screenshot","time":1693},{"type":"mousemove","time":1903,"x":226,"y":177},{"type":"mousemove","time":2103,"x":215,"y":225},{"type":"mousemove","time":2310,"x":215,"y":235},{"type":"screenshot","time":3193},{"type":"mousemove","time":3354,"x":228,"y":238},{"type":"mousemove","time":3555,"x":447,"y":290},{"type
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/timeScale.json 
b/test/runTest/actions/timeScale.json
new file mode 100644
index 0000000..3ca6ee9
--- /dev/null
+++ b/test/runTest/actions/timeScale.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":340,"x":91,"y":576},{"type":"mousemove","time":476,"x":97,"y":576},{"type":"mousemove","time":710,"x":138,"y":575},{"type":"mousemove","time":913,"x":169,"y":575},{"type":"mousemove","time":1116,"x":169,"y":575},{"type":"mousemove","time":1227,"x":167,"y":575},{"type":"mouseup","time":1301,"x":166,"y":575},{"time":1302,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":1434,"x":159,"y":576},{"type":"mousemove","time":162
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/timeScale2.json 
b/test/runTest/actions/timeScale2.json
new file mode 100644
index 0000000..d511856
--- /dev/null
+++ b/test/runTest/actions/timeScale2.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":266,"x":121,"y":380},{"type":"mousemove","time":424,"x":163,"y":379},{"type":"mousemove","time":624,"x":358,"y":379},{"type":"mousemove","time":834,"x":393,"y":378},{"type":"mouseup","time":965,"x":393,"y":378},{"time":966,"delay":400,"type":"screenshot-auto"},{"type":"mousedown","time":1530,"x":393,"y":378},{"type":"mousemove","time":1642,"x":399,"y":378},{"type":"mousemove","time":1843,"x":470,"y":378},{"type":"mousemove","time":204
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/toolbox-textStyle.json 
b/test/runTest/actions/toolbox-textStyle.json
new file mode 100644
index 0000000..2c5d379
--- /dev/null
+++ b/test/runTest/actions/toolbox-textStyle.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousemove","time":79,"x":216,"y":74},{"type":"mousemove","time":280,"x":216,"y":62},{"type":"mousemove","time":487,"x":216,"y":57},{"type":"screenshot","time":988},{"type":"mousemove","time":1398,"x":217,"y":57},{"type":"mousemove","time":1603,"x":238,"y":54},{"type":"screenshot","time":2405}],"scrollY":0,"scrollX":0,"timestamp":1568043931412}]
\ No newline at end of file
diff --git a/test/runTest/actions/toolbox-tooltip.json 
b/test/runTest/actions/toolbox-tooltip.json
new file mode 100644
index 0000000..0cdaafe
--- /dev/null
+++ b/test/runTest/actions/toolbox-tooltip.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousemove","time":148,"x":346,"y":78},{"type":"mousemove","time":354,"x":365,"y":43},{"type":"mousemove","time":565,"x":368,"y":13},{"type":"mousemove","time":766,"x":368,"y":12},{"type":"screenshot","time":1455},{"type":"mousemove","time":1591,"x":369,"y":12},{"type":"mousemove","time":1791,"x":394,"y":15},{"type":"mousemove","time":1998,"x":395,"y":15}],"scrollY":0,"scrollX":0,"timestamp":1568043940036}]
\ No newline at end of file
diff --git a/test/runTest/actions/tooltip-axisPointer.json 
b/test/runTest/actions/tooltip-axisPointer.json
new file mode 100644
index 0000000..8c2d04f
--- /dev/null
+++ b/test/runTest/actions/tooltip-axisPointer.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousemove","time":730,"x":301,"y":359},{"type":"mousemove","time":936,"x":301,"y":359},{"type":"screenshot","time":1454},{"type":"mousemove","time":1783,"x":354,"y":359},{"type":"mousemove","time":1982,"x":507,"y":362},{"type":"mousemove","time":2213,"x":511,"y":362},{"type":"screenshot","time":2924},{"type":"mousemove","time":3391,"x":511,"y":362}],"scrollY":0,"scrollX":0,"timestamp":1568043968687},{"name":"Action
 2","ops":[{"type":"mousemove","time": [...]
\ No newline at end of file
diff --git a/test/runTest/actions/tooltip-cascade.json 
b/test/runTest/actions/tooltip-cascade.json
new file mode 100644
index 0000000..c0f71f3
--- /dev/null
+++ b/test/runTest/actions/tooltip-cascade.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousemove","time":900,"x":233,"y":238},{"type":"mousemove","time":1101,"x":263,"y":240},{"type":"mousemove","time":1301,"x":302,"y":244},{"type":"mousemove","time":1511,"x":302,"y":244},{"type":"screenshot","time":2090},{"type":"mousemove","time":2335,"x":302,"y":241},{"type":"mousemove","time":2536,"x":304,"y":199},{"type":"mousemove","time":2736,"x":308,"y":185},{"type":"mousemove","time":2943,"x":311,"y":178},{"type":"screenshot","time":4034},{"type
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/tooltip-event.json 
b/test/runTest/actions/tooltip-event.json
new file mode 100644
index 0000000..76f353c
--- /dev/null
+++ b/test/runTest/actions/tooltip-event.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousemove","time":1228,"x":243,"y":245},{"type":"mousemove","time":1428,"x":583,"y":247},{"type":"mousemove","time":1628,"x":675,"y":244},{"type":"mousemove","time":1829,"x":696,"y":241},{"type":"mousemove","time":2036,"x":708,"y":241},{"type":"mousemove","time":2970,"x":709,"y":242},{"type":"mousemove","time":3171,"x":726,"y":314},{"type":"mousemove","time":3371,"x":721,"y":366},{"type":"mousemove","time":3578,"x":720,"y":377},{"type":"mousemove","tim
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/tooltip-link.json 
b/test/runTest/actions/tooltip-link.json
new file mode 100644
index 0000000..a2a9c55
--- /dev/null
+++ b/test/runTest/actions/tooltip-link.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousemove","time":377,"x":479,"y":297},{"type":"mousemove","time":581,"x":479,"y":298},{"type":"mousemove","time":893,"x":479,"y":303},{"type":"screenshot","time":1394},{"type":"mousemove","time":1962,"x":476,"y":304},{"type":"mousemove","time":2162,"x":364,"y":302},{"type":"mousemove","time":2377,"x":316,"y":302},{"type":"mousemove","time":2578,"x":315,"y":302},{"type":"screenshot","time":3469},{"type":"mousemove","time":3814,"x":315,"y":300},{"type":
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/tooltip-rich.json 
b/test/runTest/actions/tooltip-rich.json
new file mode 100644
index 0000000..5bb96a2
--- /dev/null
+++ b/test/runTest/actions/tooltip-rich.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousemove","time":572,"x":378,"y":458},{"type":"mousemove","time":773,"x":267,"y":452},{"type":"screenshot","time":1652},{"type":"mousemove","time":1831,"x":268,"y":452},{"type":"mousemove","time":2031,"x":426,"y":399},{"type":"mousemove","time":2231,"x":594,"y":314},{"type":"mousemove","time":2436,"x":603,"y":309},{"type":"screenshot","time":3072}],"scrollY":0,"scrollX":0,"timestamp":1568044631848}]
\ No newline at end of file
diff --git a/test/runTest/actions/tooltip-setOption.json 
b/test/runTest/actions/tooltip-setOption.json
new file mode 100644
index 0000000..ae6fcbe
--- /dev/null
+++ b/test/runTest/actions/tooltip-setOption.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousemove","time":592,"x":414,"y":346},{"type":"mousemove","time":797,"x":382,"y":351},{"type":"mousemove","time":1009,"x":372,"y":353},{"type":"mousemove","time":1215,"x":369,"y":353},{"type":"mousedown","time":1249,"x":369,"y":353},{"type":"mouseup","time":1383,"x":369,"y":353},{"time":1384,"delay":400,"type":"screenshot-auto"},{"type":"mousemove","time":2043,"x":373,"y":356},{"type":"mousemove","time":2243,"x":399,"y":373},{"type":"mousemove","time"
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/tooltip.json 
b/test/runTest/actions/tooltip.json
new file mode 100644
index 0000000..ac3c35b
--- /dev/null
+++ b/test/runTest/actions/tooltip.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousemove","time":1066,"x":297,"y":258},{"type":"mousemove","time":1269,"x":388,"y":256},{"type":"mousemove","time":2085,"x":392,"y":256},{"type":"mousemove","time":2287,"x":494,"y":258},{"type":"mousemove","time":2517,"x":509,"y":259},{"type":"mousemove","time":3436,"x":503,"y":284},{"type":"mousemove","time":3636,"x":491,"y":397},{"type":"mousemove","time":3837,"x":490,"y":409},{"type":"screenshot","time":4534},{"type":"mousemove","time":4578,"x":485
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/tree-image.json 
b/test/runTest/actions/tree-image.json
new file mode 100644
index 0000000..61f3e4b
--- /dev/null
+++ b/test/runTest/actions/tree-image.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousemove","time":199,"x":347,"y":297},{"type":"mousemove","time":399,"x":349,"y":290},{"type":"mousemove","time":605,"x":350,"y":289},{"type":"mousedown","time":665,"x":350,"y":289},{"type":"mouseup","time":749,"x":350,"y":289},{"time":750,"delay":600,"type":"screenshot-auto"},{"type":"mousemove","time":1490,"x":349,"y":289},{"type":"mousemove","time":1690,"x":303,"y":272},{"type":"mousemove","time":1901,"x":282,"y":249},{"type":"mousedown","time":205
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/tree-legend.json 
b/test/runTest/actions/tree-legend.json
new file mode 100644
index 0000000..8266c0e
--- /dev/null
+++ b/test/runTest/actions/tree-legend.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":417,"x":57,"y":23},{"type":"mouseup","time":490,"x":57,"y":23},{"time":491,"delay":600,"type":"screenshot-auto"},{"type":"mousedown","time":1518,"x":57,"y":23},{"type":"mouseup","time":1593,"x":57,"y":23},{"time":1594,"delay":600,"type":"screenshot-auto"},{"type":"mousemove","time":2028,"x":58,"y":26},{"type":"mousemove","time":2228,"x":64,"y":48},{"type":"mousemove","time":2441,"x":64,"y":51},{"type":"mousemove","time":2652,"x":64,"y
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/tree-radial.json 
b/test/runTest/actions/tree-radial.json
new file mode 100644
index 0000000..f7db25f
--- /dev/null
+++ b/test/runTest/actions/tree-radial.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":357,"x":466,"y":333},{"type":"mouseup","time":438,"x":466,"y":333},{"time":439,"delay":600,"type":"screenshot-auto"},{"type":"mousemove","time":920,"x":460,"y":338},{"type":"mousemove","time":1142,"x":454,"y":361},{"type":"mousemove","time":1343,"x":454,"y":362},{"type":"mousemove","time":1546,"x":450,"y":368},{"type":"mousemove","time":1746,"x":449,"y":368},{"type":"mousemove","time":1946,"x":445,"y":367},{"type":"mousemove","time":2
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/treemap-disk.json 
b/test/runTest/actions/treemap-disk.json
index 2dbc5b5..34f29f2 100644
--- a/test/runTest/actions/treemap-disk.json
+++ b/test/runTest/actions/treemap-disk.json
@@ -1 +1 @@
-[{"name":"Action 
1","ops":[{"type":"mousedown","time":399,"x":409,"y":321},{"type":"mouseup","time":495,"x":409,"y":321},{"time":496,"delay":1000,"type":"screenshot-auto"},{"type":"mousemove","time":1568,"x":409,"y":321},{"type":"mousemove","time":1988,"x":409,"y":322},{"type":"mousemove","time":2188,"x":338,"y":571},{"type":"mousemove","time":2402,"x":284,"y":594},{"type":"mousemove","time":2604,"x":272,"y":585},{"type":"mousemove","time":2819,"x":272,"y":585},{"type":"mousedown","time"
 [...]
\ No newline at end of file
+[{"name":"Action 
1","ops":[{"type":"mousemove","time":71,"x":179,"y":15},{"type":"mousemove","time":272,"x":193,"y":9},{"type":"mousemove","time":478,"x":193,"y":9},{"type":"mousedown","time":529,"x":193,"y":9},{"type":"mouseup","time":626,"x":193,"y":9},{"time":627,"delay":1000,"type":"screenshot-auto"},{"type":"mousemove","time":889,"x":193,"y":9},{"type":"mousemove","time":1089,"x":183,"y":10},{"type":"mousemove","time":1303,"x":160,"y":11},{"type":"mousemove","time":1505,"x":153,"y":
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/treemap-disk2.json 
b/test/runTest/actions/treemap-disk2.json
new file mode 100644
index 0000000..be10244
--- /dev/null
+++ b/test/runTest/actions/treemap-disk2.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousemove","time":783,"x":451,"y":369},{"type":"mousemove","time":983,"x":460,"y":399},{"type":"mousemove","time":1190,"x":482,"y":413},{"type":"screenshot","time":2593},{"type":"mousemove","time":2820,"x":481,"y":411},{"type":"mousemove","time":3029,"x":448,"y":369},{"type":"mousemove","time":3244,"x":441,"y":362},{"type":"mousemove","time":3554,"x":441,"y":362},{"type":"screenshot","time":4426},{"type":"mousemove","time":4571,"x":439,"y":361},{"type"
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/treemap-obama.json 
b/test/runTest/actions/treemap-obama.json
new file mode 100644
index 0000000..58ad394
--- /dev/null
+++ b/test/runTest/actions/treemap-obama.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousemove","time":214,"x":127,"y":31},{"type":"mousemove","time":414,"x":93,"y":31},{"type":"mousemove","time":621,"x":83,"y":29},{"type":"mousedown","time":756,"x":83,"y":29},{"type":"mouseup","time":846,"x":83,"y":29},{"time":847,"delay":600,"type":"screenshot-auto"},{"type":"mousemove","time":1665,"x":84,"y":32},{"type":"mousemove","time":1867,"x":88,"y":58},{"type":"mousemove","time":2067,"x":87,"y":69},{"type":"mousedown","time":2207,"x":86,"y":71
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/treemap-option.json 
b/test/runTest/actions/treemap-option.json
new file mode 100644
index 0000000..1e9b469
--- /dev/null
+++ b/test/runTest/actions/treemap-option.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":362,"x":261,"y":394},{"type":"mouseup","time":414,"x":261,"y":394},{"time":415,"delay":600,"type":"screenshot-auto"},{"type":"mousemove","time":1255,"x":262,"y":394},{"type":"mousemove","time":1461,"x":280,"y":397},{"type":"mousedown","time":1547,"x":280,"y":397},{"type":"mouseup","time":1644,"x":280,"y":397},{"time":1645,"delay":600,"type":"screenshot-auto"}],"scrollY":0,"scrollX":0,"timestamp":1568045450618}]
\ No newline at end of file
diff --git a/test/runTest/actions/treemap-option2.json 
b/test/runTest/actions/treemap-option2.json
new file mode 100644
index 0000000..7a9a259
--- /dev/null
+++ b/test/runTest/actions/treemap-option2.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":272,"x":319,"y":302},{"type":"mouseup","time":377,"x":319,"y":302},{"time":378,"delay":600,"type":"screenshot-auto"},{"type":"mousemove","time":1252,"x":319,"y":303},{"type":"mousemove","time":1453,"x":320,"y":305},{"type":"mousemove","time":1662,"x":383,"y":319},{"type":"mousedown","time":1750,"x":383,"y":319},{"type":"mouseup","time":1847,"x":383,"y":319},{"time":1848,"delay":600,"type":"screenshot-auto"},{"type":"mousemove","time":
 [...]
\ No newline at end of file
diff --git a/test/runTest/actions/visualMap-categories.json 
b/test/runTest/actions/visualMap-categories.json
new file mode 100644
index 0000000..f10e9d5
--- /dev/null
+++ b/test/runTest/actions/visualMap-categories.json
@@ -0,0 +1 @@
+[{"name":"Action 
1","ops":[{"type":"mousedown","time":542,"x":780,"y":466},{"type":"mouseup","time":636,"x":780,"y":466},{"time":637,"delay":600,"type":"screenshot-auto"},{"type":"mousemove","time":879,"x":780,"y":470},{"type":"mousemove","time":1079,"x":780,"y":496},{"type":"mousemove","time":1310,"x":780,"y":496},{"type":"mousemove","time":1462,"x":781,"y":496},{"type":"mousemove","time":1662,"x":785,"y":494},{"type":"mousedown","time":1844,"x":785,"y":493},{"type":"mousemove","time":1
 [...]
\ No newline at end of file
diff --git a/test/runTest/blacklist.js b/test/runTest/blacklist.js
index 90982d8..28327aa 100644
--- a/test/runTest/blacklist.js
+++ b/test/runTest/blacklist.js
@@ -4,5 +4,7 @@ module.exports = [
     'chord.html',
     'lines-ny.html',
     'lines-ny-appendData.html',
-    'linesGL-ny-appendData.html'
+    'linesGL-ny-appendData.html',
+    'richText.html',
+    'tmp-base.html'
 ];
diff --git a/test/runTest/cli.js b/test/runTest/cli.js
index 436a879..13ca848 100644
--- a/test/runTest/cli.js
+++ b/test/runTest/cli.js
@@ -126,11 +126,11 @@ async function runTestPage(browser, testOpt, version, 
runtimeCode) {
         logs.push(msg.text());
     });
     page.on('pageerror', error => {
-        errors.push(error);
+        errors.push(error.toString());
     });
 
     try {
-        await page.setViewport({ width: 800, height: 600 });
+        await page.setViewport({width: 800, height: 600});
         await page.goto(`${origin}/test/${fileUrl}`, {
             waitUntil: 'networkidle2',
             timeout: 10000
diff --git a/test/runTest/recorder/recorder.js 
b/test/runTest/recorder/recorder.js
index b11d274..440bbb1 100644
--- a/test/runTest/recorder/recorder.js
+++ b/test/runTest/recorder/recorder.js
@@ -1,5 +1,17 @@
 const socket = io('/recorder');
 
+function getNthChild(el) {
+    let i = 1;
+    let elTagName = el.tagName;
+    let elClassName = el.className;
+    while (el.previousSibling) {
+        el = el.previousSibling;
+        if (el.tagName === elTagName && el.className === elClassName) { // 
TODO extra space in class name?
+            i++;
+        }
+    }
+    return i;
+}
 function getUniqueSelector(el) {
     if (el.tagName.toLowerCase() === 'body') {
         return '';
@@ -14,6 +26,10 @@ function getUniqueSelector(el) {
         for (let className of el.classList) {
             selector += '.' + className;
         }
+        let idx = getNthChild(el);
+        if (idx > 1) {
+            selector += `:nth-child(${idx})`;
+        }
     }
     let parentSelector = el.parentNode && getUniqueSelector(el.parentNode);
     if (parentSelector) {
diff --git a/test/theme.html b/test/theme.html
index 6e44cb2..3c0ce54 100644
--- a/test/theme.html
+++ b/test/theme.html
@@ -32,7 +32,7 @@ under the License.
                 margin: 0;
             }
             #main {
-                width: 1000px;
+                width: 100%;
                 background: #fff;
             }
         </style>
diff --git a/test/tooltip-event.html b/test/tooltip-event.html
index e2268f3..5b1e26c 100644
--- a/test/tooltip-event.html
+++ b/test/tooltip-event.html
@@ -90,7 +90,7 @@ under the License.
                                 tooltip: {
                                     formatter: function () {
                                         return [
-                                            '<button 
onclick="alert(\'click\');">click me</button>'
+                                            '<button 
onclick="console.log(\'click\');">click me</button>'
                                         ].join('');
                                     },
                                     enterable: true


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@echarts.apache.org
For additional commands, e-mail: commits-h...@echarts.apache.org

Reply via email to