@@ -490,22 +490,35 @@ WebDriverJsController.prototype.screenshot = function() {
490490 } )
491491}
492492
493- WebDriverJsController . prototype . findElementById = function ( ) {
494- this . _constructWebDriver ( ) ;
495- var name = document . getElementsByName ( 'elementId' ) [ 0 ] . value ;
496- this . element = this . driver . findElement ( webdriver . By . id ( name ) ) ;
497- }
493+ WebDriverJsController . prototype . logs = function ( type ) {
494+ if ( type === 'Logs' )
495+ return ;
498496
499- WebDriverJsController . prototype . findElementByName = function ( ) {
500497 this . _constructWebDriver ( ) ;
501- var name = document . getElementsByName ( 'elementName' ) [ 0 ] . value ;
502- this . element = this . driver . findElement ( webdriver . By . name ( name ) ) ;
498+ this . driver . manage ( ) . logs ( ) . get ( type ) . then ( function ( entries ) {
499+ var lines = [ ] ;
500+ for ( var entryIndex in entries ) {
501+ var entry = entries [ entryIndex ] ;
502+ lines . push ( entry . level . name + ' ' + entry . timestamp + ' ' + entry . message ) ;
503+ }
504+
505+ data = new Blob ( [ lines . join ( '\n' ) ] , { type : 'text/plain' } ) ;
506+ saveAs ( data , 'webdriver.log' ) ;
507+ } )
503508}
504509
505- WebDriverJsController . prototype . findElementByTagName = function ( ) {
510+ WebDriverJsController . prototype . findElement = function ( ) {
506511 this . _constructWebDriver ( ) ;
507- var name = document . getElementsByName ( 'elementTagName' ) [ 0 ] . value ;
508- this . element = this . driver . findElement ( webdriver . By . tagName ( name ) ) ;
512+ var criteria = document . getElementsByName ( 'findElementCriteria' ) [ 0 ] . value ;
513+ var key = document . getElementsByName ( 'findElementKey' ) [ 0 ] . value ;
514+ if ( criteria === 'id' )
515+ this . element = this . driver . findElement ( webdriver . By . id ( key ) ) ;
516+ else if ( criteria === 'name' )
517+ this . element = this . driver . findElement ( webdriver . By . name ( key ) ) ;
518+ else if ( criteria === 'tagName' )
519+ this . element = this . driver . findElement ( webdriver . By . tagName ( key ) ) ;
520+ else if ( criteria === 'xpath' )
521+ this . element = this . driver . findElement ( webdriver . By . xpath ( key ) ) ;
509522}
510523
511524WebDriverJsController . prototype . sendKeys = function ( key ) {
@@ -522,6 +535,28 @@ WebDriverJsController.prototype.click = function() {
522535 this . element . click ( ) ;
523536}
524537
538+ WebDriverJsController . prototype . listWindowHandles = function ( ) {
539+ this . _constructWebDriver ( ) ;
540+
541+ var select = document . getElementById ( 'windowList' ) ;
542+ this . driver . getAllWindowHandles ( ) . then ( function ( handles ) {
543+ select . innerHTML = '' ;
544+ for ( var handle in handles ) {
545+ var item = document . createElement ( 'option' ) ;
546+ item . innerHTML = handle ;
547+ select . appendChild ( item )
548+ }
549+ document . getElementById ( 'windowList' ) . style . visibility = 'visible' ;
550+ document . getElementById ( 'chooseWindow' ) . style . visibility = 'visible' ;
551+ } ) ;
552+ }
553+
554+ WebDriverJsController . prototype . chooseWindow = function ( ) {
555+ this . _constructWebDriver ( ) ;
556+ var handle = document . getElementById ( 'windowList' ) . value ;
557+ this . driver . switchTo ( ) . window ( handle ) ;
558+ }
559+
525560WebDriverJsController . prototype . setWindowSize = function ( ) {
526561 this . _constructWebDriver ( ) ;
527562 var width = document . getElementsByName ( 'windowSizeWidth' ) [ 0 ] . value ;
0 commit comments