@@ -25,61 +25,6 @@ if (!String.prototype.endsWith) {
2525 } ) ;
2626}
2727
28- function loadFile ( url ) {
29- var req = new XMLHttpRequest ( ) ;
30- req . open ( 'GET' , url , false ) ;
31- try {
32- req . send ( ) ;
33- return req . responseText ;
34- } catch ( err ) {
35- var message = 'Error at "' + err . filename + '" message "' + err . message +
36- '" name "' + err . name + '" result 0x' + Number ( err . result ) . toString ( 16 ) ;
37- console . log ( message ) ;
38- return message ;
39- }
40- }
41-
42- function _getXPath ( node , path ) {
43- path = path || [ ] ;
44- if ( node . parentNode ) {
45- path = _getXPath ( node . parentNode , path ) ;
46- }
47-
48- if ( node . previousSibling ) {
49- var count = 1 ;
50- var sibling = node . previousSibling
51- do {
52- if ( sibling . nodeType == 1 && sibling . nodeName == node . nodeName ) { count ++ ; }
53- sibling = sibling . previousSibling ;
54- } while ( sibling ) ;
55- if ( count == 1 ) { count = null ; }
56- } else if ( node . nextSibling ) {
57- var sibling = node . nextSibling ;
58- do {
59- if ( sibling . nodeType == 1 && sibling . nodeName == node . nodeName ) {
60- var count = 1 ;
61- sibling = null ;
62- } else {
63- var count = null ;
64- sibling = sibling . previousSibling ;
65- }
66- } while ( sibling ) ;
67- }
68-
69- if ( node . nodeType == 1 ) {
70- path . push ( node . nodeName . toLowerCase ( ) + ( node . id ? "[@id='" + node . id + "']" : count > 0 ? "[" + count + "]" : '' ) ) ;
71- }
72- return path ;
73- }
74-
75- function getXPath ( node ) {
76- if ( node . hasAttribute ( 'data-viz-id' ) )
77- return '//*[@data-viz-id=' + node . getAttribute ( 'data-viz-id' ) + "]" ;
78-
79- var path = _getXPath ( node ) ;
80- return '/' + path . join ( '/' ) ;
81- }
82-
8328webdriver . FirstSessionBuilder = function ( ) {
8429 webdriver . AbstractBuilder . call ( this ) ;
8530} ;
@@ -120,8 +65,66 @@ window.onerror = function(errorMsg, url, lineNumber, columnNumber, error) {
12065 return false ;
12166} ;
12267
123- var Util = function ( ) { } ;
124- Util . WebDriverKeyFromJs = function ( keyCode ) {
68+ var Util = { } ;
69+
70+ Util . loadFile = function ( url ) {
71+ var req = new XMLHttpRequest ( ) ;
72+ req . open ( 'GET' , url , false ) ;
73+ try {
74+ req . send ( ) ;
75+ return req . responseText ;
76+ } catch ( err ) {
77+ var message = 'Error at "' + err . filename + '" message "' + err . message +
78+ '" name "' + err . name + '" result 0x' + Number ( err . result ) . toString ( 16 ) ;
79+ console . log ( message ) ;
80+ return message ;
81+ }
82+ } ;
83+
84+ Util . getXPath = function ( ) {
85+ function getXPath ( node , path ) {
86+ path = path || [ ] ;
87+ if ( node . parentNode ) {
88+ path = getXPath ( node . parentNode , path ) ;
89+ }
90+
91+ if ( node . previousSibling ) {
92+ var count = 1 ;
93+ var sibling = node . previousSibling
94+ do {
95+ if ( sibling . nodeType == 1 && sibling . nodeName == node . nodeName ) { count ++ ; }
96+ sibling = sibling . previousSibling ;
97+ } while ( sibling ) ;
98+ if ( count == 1 ) { count = null ; }
99+ } else if ( node . nextSibling ) {
100+ var sibling = node . nextSibling ;
101+ do {
102+ if ( sibling . nodeType == 1 && sibling . nodeName == node . nodeName ) {
103+ var count = 1 ;
104+ sibling = null ;
105+ } else {
106+ var count = null ;
107+ sibling = sibling . previousSibling ;
108+ }
109+ } while ( sibling ) ;
110+ }
111+
112+ if ( node . nodeType == 1 ) {
113+ path . push ( node . nodeName . toLowerCase ( ) + ( node . id ? "[@id='" + node . id + "']" : count > 0 ? "[" + count + "]" : '' ) ) ;
114+ }
115+ return path ;
116+ }
117+
118+ return function ( node ) {
119+ if ( node . hasAttribute ( 'data-viz-id' ) )
120+ return '//*[@data-viz-id=' + node . getAttribute ( 'data-viz-id' ) + "]" ;
121+
122+ var path = getXPath ( node ) ;
123+ return '/' + path . join ( '/' ) ;
124+ }
125+ } ( ) ;
126+
127+ Util . webDriverKeyFromJs = function ( keyCode ) {
125128 switch ( keyCode ) {
126129 case 8 : return webdriver . Key . BACK_SPACE ;
127130 case 9 : return webdriver . Key . TAB ;
@@ -201,7 +204,7 @@ VisualizerXsltProcessors.prototype.get = function(webPage) {
201204} ;
202205
203206VisualizerXsltProcessors . prototype . _create = function ( name ) {
204- var stylesheet = loadFile ( name ) ;
207+ var stylesheet = Util . loadFile ( name ) ;
205208 stylesheet = ( new DOMParser ( ) ) . parseFromString ( stylesheet , 'application/xml' ) ;
206209 var processor = new XSLTProcessor ( ) ;
207210 try {
@@ -262,7 +265,7 @@ VisualizerController.prototype.visualizerAssignEventHandlers = function() {
262265 } ;
263266
264267 win . document . onkeyup = function ( event ) {
265- var key = Util . WebDriverKeyFromJs ( event . keyCode ) ;
268+ var key = Util . webDriverKeyFromJs ( event . keyCode ) ;
266269 if ( ! key )
267270 return true ;
268271
@@ -283,7 +286,7 @@ VisualizerController.prototype.visualizerAssignEventHandlers = function() {
283286 return ;
284287 }
285288
286- var xpath = getXPath ( event . target ) ;
289+ var xpath = Util . getXPath ( event . target ) ;
287290 var target = self . driver . findElement ( webdriver . By . xpath ( xpath ) ) ;
288291 self . driver . actions ( ) .
289292 mouseMove ( target , { x : event . offsetX , y : event . offsetY } ) .
@@ -297,7 +300,7 @@ VisualizerController.prototype.visualizerAssignEventHandlers = function() {
297300 return ;
298301 }
299302
300- var xpath = getXPath ( event . target ) ;
303+ var xpath = Util . getXPath ( event . target ) ;
301304 var target = self . driver . findElement ( webdriver . By . xpath ( xpath ) ) ;
302305 self . driver . actions ( ) .
303306 mouseMove ( target , { x : event . offsetX , y : event . offsetY } ) .
@@ -318,7 +321,7 @@ VisualizerController.prototype.visualizerAssignEventHandlers = function() {
318321 return ;
319322 }
320323
321- var xpath = getXPath ( event . target ) ;
324+ var xpath = Util . getXPath ( event . target ) ;
322325 var target = self . driver . findElement ( webdriver . By . xpath ( xpath ) ) ;
323326 self . driver . actions ( ) .
324327 mouseMove ( target , { x : event . offsetX , y : event . offsetY } ) .
@@ -335,23 +338,23 @@ VisualizerController.prototype.visualizerAssignEventHandlers = function() {
335338 var hammer = Hammer ( win . document ) ;
336339
337340 hammer . on ( "tap" , function ( event ) {
338- var xpath = getXPath ( event . target ) ;
341+ var xpath = Util . getXPath ( event . target ) ;
339342 var target = self . driver . findElement ( webdriver . By . xpath ( xpath ) ) ;
340343 self . driver . actions ( ) .
341344 touchSingleTap ( target ) .
342345 perform ( ) ;
343346 } ) ;
344347
345348 hammer . on ( "hold" , function ( event ) {
346- var xpath = getXPath ( event . target ) ;
349+ var xpath = Util . getXPath ( event . target ) ;
347350 var target = self . driver . findElement ( webdriver . By . xpath ( xpath ) ) ;
348351 self . driver . actions ( ) .
349352 touchLongPress ( target ) .
350353 perform ( ) ;
351354 } ) ;
352355
353356 hammer . on ( "doubletap" , function ( event ) {
354- var xpath = getXPath ( event . target ) ;
357+ var xpath = Util . getXPath ( event . target ) ;
355358 var target = self . driver . findElement ( webdriver . By . xpath ( xpath ) ) ;
356359 self . driver . actions ( ) .
357360 touchDoubleTap ( target ) .
@@ -377,7 +380,7 @@ VisualizerController.prototype.visualizerAssignEventHandlers = function() {
377380 } ) ;
378381
379382 hammer . on ( "dragstart" , function ( event ) {
380- var xpath = getXPath ( event . target ) ;
383+ var xpath = Util . getXPath ( event . target ) ;
381384 self . dragstart = self . driver . findElement ( webdriver . By . xpath ( xpath ) ) ;
382385 } ) ;
383386
@@ -411,15 +414,15 @@ VisualizerController.prototype.visualizerAssignEventHandlers = function() {
411414 } ) ;
412415
413416 hammer . on ( "rotate" , function ( event ) {
414- var xpath = getXPath ( event . target ) ;
417+ var xpath = Util . getXPath ( event . target ) ;
415418 var target = self . driver . findElement ( webdriver . By . xpath ( xpath ) ) ;
416419 self . driver . actions ( ) .
417420 touchPinchRotate ( target , event . gesture . rotation ) .
418421 perform ( ) ;
419422 } ) ;
420423
421424 hammer . on ( "pinch" , function ( event ) {
422- var xpath = getXPath ( event . target ) ;
425+ var xpath = Util . getXPath ( event . target ) ;
423426 var target = self . driver . findElement ( webdriver . By . xpath ( xpath ) ) ;
424427 self . driver . actions ( ) .
425428 touchPinchZoom ( target , event . gesture . scale ) .
0 commit comments