Skip to content

Commit 97e8a08

Browse files
author
Vasyl Vavrychuk
committed
when choosing window update 'Web page' edit
Fixes MHA-879.
1 parent a75e415 commit 97e8a08

File tree

1 file changed

+29
-21
lines changed

1 file changed

+29
-21
lines changed

web/webdriver-app.js

Lines changed: 29 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -659,7 +659,7 @@ WebDriverJsView.prototype.updateSessionDepControls = function() {
659659
var control = sessionDepControls[controlIndex];
660660
control.disabled = disable;
661661
}
662-
}
662+
};
663663

664664
WebDriverJsView.prototype.setSessionId = function(id) {
665665
var element = document.getElementById('sessionIdLabel');
@@ -668,7 +668,7 @@ WebDriverJsView.prototype.setSessionId = function(id) {
668668
} else {
669669
element.innerHTML = '';
670670
}
671-
}
671+
};
672672

673673
WebDriverJsView.prototype.setFoundElementId = function(id) {
674674
var element = document.getElementById('foundElement');
@@ -681,7 +681,25 @@ WebDriverJsView.prototype.setFoundElementId = function(id) {
681681
this.setError(id.ELEMENT.message);
682682
document.getElementById('elementActions').style.visibility = 'hidden';
683683
}
684-
}
684+
};
685+
686+
WebDriverJsView.prototype.setWindowList = function(handles, activeWindowHandle) {
687+
var select = document.getElementById('windowList');
688+
select.innerHTML = '';
689+
for (var handleIndex in handles) {
690+
var handle = handles[handleIndex];
691+
var item = document.createElement('option');
692+
item.setAttribute('value', handle);
693+
item.innerHTML = handle;
694+
if (activeWindowHandle == handle) {
695+
item.innerHTML += ' (active)';
696+
item.selected = true;
697+
}
698+
select.appendChild(item)
699+
}
700+
document.getElementById('windowList').style.visibility = 'visible';
701+
document.getElementById('chooseWindow').style.visibility = 'visible';
702+
};
685703

686704
WebDriverJsView.prototype.setError = function(message) {
687705
var element = document.getElementById('error');
@@ -716,9 +734,9 @@ WebDriverJsController.prototype.setServerUrl = function(serverUrl) {
716734
}
717735

718736
WebDriverJsController.prototype.setWebPage = function(webPage) {
719-
this.element = null;
720-
721-
this.driver.get(webPage);
737+
if (webPage !== this.webPage) {
738+
this.element = null;
739+
}
722740

723741
this.webPage = webPage;
724742
if (localStorage)
@@ -739,6 +757,7 @@ WebDriverJsController.prototype.updateDriver = function() {
739757
});
740758
} else if (webPage !== this.webPage) {
741759
this.setWebPage(webPage);
760+
this.driver.get(webPage);
742761
}
743762
};
744763

@@ -863,23 +882,9 @@ WebDriverJsController.prototype.onSendKeys = function(key) {
863882

864883
WebDriverJsController.prototype.onListWindowHandles = function() {
865884
var self = this;
866-
var select = document.getElementById('windowList');
867885
this.driver.getWindowHandle().then(function(activeWindowHandle) {
868886
self.driver.getAllWindowHandles().then(function(handles) {
869-
select.innerHTML = '';
870-
for (var handleIndex in handles) {
871-
var handle = handles[handleIndex];
872-
var item = document.createElement('option');
873-
item.setAttribute('value', handle);
874-
item.innerHTML = handle;
875-
if (activeWindowHandle == handle) {
876-
item.innerHTML += ' (active)';
877-
item.selected = true;
878-
}
879-
select.appendChild(item)
880-
}
881-
document.getElementById('windowList').style.visibility = 'visible';
882-
document.getElementById('chooseWindow').style.visibility = 'visible';
887+
self.view.setWindowList(handles, activeWindowHandle);
883888
});
884889
});
885890
};
@@ -889,6 +894,9 @@ WebDriverJsController.prototype.onChooseWindow = function() {
889894
var handle = document.getElementById('windowList').value;
890895
this.driver.switchTo().window(handle).then(function() {
891896
self.onListWindowHandles();
897+
return self.driver.getCurrentUrl();
898+
}).then(function(url) {
899+
self.setWebPage(url);
892900
});
893901
};
894902

0 commit comments

Comments
 (0)