Skip to content

Commit 5adeab4

Browse files
committed
Fixing WDBS compatibility with IE5. Fixes issue 7938
1 parent f85749a commit 5adeab4

File tree

5 files changed

+37
-15
lines changed

5 files changed

+37
-15
lines changed

Diff for: .idea/copyright/profiles_settings.xml

+1-3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: dotnet/src/webdriverbackedselenium/Internal/AlertOverride.cs

+15-5
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,9 @@ public void ReplaceAlertMethod()
2929
((IJavaScriptExecutor)this.driver).ExecuteScript(
3030
"var canUseLocalStorage = false; " +
3131
"try { canUseLocalStorage = !!window.localStorage; } catch(ex) { /* probe failed */ } " +
32-
"if (canUseLocalStorage) { " +
32+
"var canUseJSON = false; " +
33+
"try { canUseJSON = !!JSON; } catch(ex) { /* probe failed */ } " +
34+
"if (canUseLocalStorage && canUseJSON) { " +
3335
" window.localStorage.setItem('__webdriverAlerts', JSON.stringify([])); " +
3436
" window.alert = function(msg) { " +
3537
" var alerts = JSON.parse(window.localStorage.getItem('__webdriverAlerts')); " +
@@ -73,7 +75,9 @@ public string GetNextAlert()
7375
string result = (string)((IJavaScriptExecutor)this.driver).ExecuteScript(
7476
"var canUseLocalStorage = false; " +
7577
"try { canUseLocalStorage = !!window.localStorage; } catch(ex) { /* probe failed */ } " +
76-
"if (canUseLocalStorage) { " +
78+
"var canUseJSON = false; " +
79+
"try { canUseJSON = !!JSON; } catch(ex) { /* probe failed */ } " +
80+
"if (canUseLocalStorage && canUseJSON) { " +
7781
" if (!('__webdriverAlerts' in window.localStorage)) { return null } " +
7882
" var alerts = JSON.parse(window.localStorage.getItem('__webdriverAlerts')); " +
7983
" if (! alerts) { return null } " +
@@ -107,7 +111,9 @@ public bool IsAlertPresent()
107111
object alertResult = ((IJavaScriptExecutor)this.driver).ExecuteScript(
108112
"var canUseLocalStorage = false; " +
109113
"try { canUseLocalStorage = !!window.localStorage; } catch(ex) { /* probe failed */ } " +
110-
"if (canUseLocalStorage) { " +
114+
"var canUseJSON = false; " +
115+
"try { canUseJSON = !!JSON; } catch(ex) { /* probe failed */ } " +
116+
"if (canUseLocalStorage && canUseJSON) { " +
111117
" if (!('__webdriverAlerts' in window.localStorage)) { return false } " +
112118
" var alerts = JSON.parse(window.localStorage.getItem('__webdriverAlerts')); " +
113119
" return alerts && alerts.length > 0; " +
@@ -132,7 +138,9 @@ public string GetNextConfirmation()
132138
string result = (string)((IJavaScriptExecutor)this.driver).ExecuteScript(
133139
"var canUseLocalStorage = false; " +
134140
"try { canUseLocalStorage = !!window.localStorage; } catch(ex) { /* probe failed */ } " +
135-
"if (canUseLocalStorage) { " +
141+
"var canUseJSON = false; " +
142+
"try { canUseJSON = !!JSON; } catch(ex) { /* probe failed */ } " +
143+
"if (canUseLocalStorage && canUseJSON) { " +
136144
" if (!('__webdriverConfirms' in window.localStorage)) { return null } " +
137145
" var confirms = JSON.parse(window.localStorage.getItem('__webdriverConfirms')); " +
138146
" if (! confirms) { return null } " +
@@ -164,7 +172,9 @@ public bool IsConfirmationPresent()
164172
object confirmResult = ((IJavaScriptExecutor)this.driver).ExecuteScript(
165173
"var canUseLocalStorage = false; " +
166174
"try { canUseLocalStorage = !!window.localStorage; } catch(ex) { /* probe failed */ } " +
167-
"if (canUseLocalStorage) { " +
175+
"var canUseJSON = false; " +
176+
"try { canUseJSON = !!JSON; } catch(ex) { /* probe failed */ } " +
177+
"if (canUseLocalStorage && canUseJSON) { " +
168178
" if (!('__webdriverConfirms' in window.localStorage)) { return false } " +
169179
" var confirms = JSON.parse(window.localStorage.getItem('__webdriverConfirms')); " +
170180
" return confirms && confirms.length > 0; " +

Diff for: dotnet/src/webdriverbackedselenium/Internal/SeleniumEmulation/SetNextConfirmationState.cs

+3-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,9 @@ protected override object HandleSeleneseCommand(IWebDriver driver, string locato
3434
((IJavaScriptExecutor)driver).ExecuteScript(
3535
"var canUseLocalStorage = false; " +
3636
"try { canUseLocalStorage = !!window.localStorage; } catch(ex) { /* probe failed */ } " +
37-
"if (canUseLocalStorage) { " +
37+
"var canUseJSON = false; " +
38+
"try { canUseJSON = !!JSON; } catch(ex) { /* probe failed */ } " +
39+
"if (canUseLocalStorage && canUseJSON) { " +
3840
" window.localStorage.setItem('__webdriverNextConfirm', JSON.stringify(arguments[0])); " +
3941
"} else { " +
4042
" window.__webdriverNextConfirm = arguments[0];" +

Diff for: java/client/src/com/thoughtworks/selenium/webdriven/commands/AlertOverride.java

+15-5
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,9 @@ public void replaceAlertMethod(WebDriver driver) {
3939
((JavascriptExecutor) driver).executeScript(
4040
"var canUseLocalStorage = false; " +
4141
"try { canUseLocalStorage = !!window.localStorage; } catch(ex) { /* probe failed */ } " +
42-
"if (canUseLocalStorage) { " +
42+
"var canUseJSON = false; " +
43+
"try { canUseJSON = !!JSON; } catch(ex) { /* probe failed */ } " +
44+
"if (canUseLocalStorage && canUseJSON) { " +
4345
" window.localStorage.setItem('__webdriverAlerts', JSON.stringify([])); " +
4446
" window.alert = function(msg) { " +
4547
" var alerts = JSON.parse(window.localStorage.getItem('__webdriverAlerts')); " +
@@ -84,7 +86,9 @@ public String getNextAlert(WebDriver driver) {
8486
String result = (String) ((JavascriptExecutor) driver).executeScript(
8587
"var canUseLocalStorage = false; " +
8688
"try { canUseLocalStorage = !!window.localStorage; } catch(ex) { /* probe failed */ } " +
87-
"if (canUseLocalStorage) { " +
89+
"var canUseJSON = false; " +
90+
"try { canUseJSON = !!JSON; } catch(ex) { /* probe failed */ } " +
91+
"if (canUseLocalStorage && canUseJSON) { " +
8892
" if (!('__webdriverAlerts' in window.localStorage)) { return null } " +
8993
" var alerts = JSON.parse(window.localStorage.getItem('__webdriverAlerts')); " +
9094
" if (! alerts) { return null } " +
@@ -112,7 +116,9 @@ public boolean isAlertPresent(WebDriver driver) {
112116
return Boolean.TRUE.equals(((JavascriptExecutor) driver).executeScript(
113117
"var canUseLocalStorage = false; " +
114118
"try { canUseLocalStorage = !!window.localStorage; } catch(ex) { /* probe failed */ } " +
115-
"if (canUseLocalStorage) { " +
119+
"var canUseJSON = false; " +
120+
"try { canUseJSON = !!JSON; } catch(ex) { /* probe failed */ } " +
121+
"if (canUseLocalStorage && canUseJSON) { " +
116122
" if (!('__webdriverAlerts' in window.localStorage)) { return false } " +
117123
" var alerts = JSON.parse(window.localStorage.getItem('__webdriverAlerts')); " +
118124
" return alerts && alerts.length > 0; " +
@@ -127,7 +133,9 @@ public String getNextConfirmation(WebDriver driver) {
127133
String result = (String) ((JavascriptExecutor) driver).executeScript(
128134
"var canUseLocalStorage = false; " +
129135
"try { canUseLocalStorage = !!window.localStorage; } catch(ex) { /* probe failed */ } " +
130-
"if (canUseLocalStorage) { " +
136+
"var canUseJSON = false; " +
137+
"try { canUseJSON = !!JSON; } catch(ex) { /* probe failed */ } " +
138+
"if (canUseLocalStorage && canUseJSON) { " +
131139
" if (!('__webdriverConfirms' in window.localStorage)) { return null } " +
132140
" var confirms = JSON.parse(window.localStorage.getItem('__webdriverConfirms')); " +
133141
" if (! confirms) { return null } " +
@@ -153,7 +161,9 @@ public boolean isConfirmationPresent(WebDriver driver) {
153161
return Boolean.TRUE.equals(((JavascriptExecutor) driver).executeScript(
154162
"var canUseLocalStorage = false; " +
155163
"try { canUseLocalStorage = !!window.localStorage; } catch(ex) { /* probe failed */ } " +
156-
"if (canUseLocalStorage) { " +
164+
"var canUseJSON = false; " +
165+
"try { canUseJSON = !!JSON; } catch(ex) { /* probe failed */ } " +
166+
"if (canUseLocalStorage && canUseJSON) { " +
157167
" if (!('__webdriverConfirms' in window.localStorage)) { return false } " +
158168
" var confirms = JSON.parse(window.localStorage.getItem('__webdriverConfirms')); " +
159169
" return confirms && confirms.length > 0; " +

Diff for: java/client/src/com/thoughtworks/selenium/webdriven/commands/SetNextConfirmationState.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,9 @@ protected Void handleSeleneseCommand(WebDriver driver, String locator, String va
3333
((JavascriptExecutor) driver).executeScript(
3434
"var canUseLocalStorage = false; " +
3535
"try { canUseLocalStorage = !!window.localStorage; } catch(ex) { /* probe failed */ } " +
36-
"if (canUseLocalStorage) { " +
36+
"var canUseJSON = false; " +
37+
"try { canUseJSON = !!JSON; } catch(ex) { /* probe failed */ } " +
38+
"if (canUseLocalStorage && canUseJSON) { " +
3739
" window.localStorage.setItem('__webdriverNextConfirm', JSON.stringify(arguments[0])); " +
3840
"} else { " +
3941
" window.__webdriverNextConfirm = arguments[0];" +

0 commit comments

Comments
 (0)