Skip to content

Commit 1ee3cdc

Browse files
committed
fix(leadfoot): webdriver fixes for IE and Firefox
- Hardcode usesWebDriverTimeouts and brokenZeroTimeout for IE11 - Handle 422 'Invalid command' responses from Firefox on BrowserStack
1 parent c77a865 commit 1ee3cdc

File tree

2 files changed

+49
-29
lines changed

2 files changed

+49
-29
lines changed

packages/leadfoot/docs/api.json

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -19346,7 +19346,7 @@
1934619346
"sources": [
1934719347
{
1934819348
"fileName": "packages/leadfoot/src/Server.ts",
19349-
"line": 423,
19349+
"line": 435,
1935019350
"character": 15
1935119351
}
1935219352
]
@@ -19464,7 +19464,7 @@
1946419464
"sources": [
1946519465
{
1946619466
"fileName": "packages/leadfoot/src/Server.ts",
19467-
"line": 393,
19467+
"line": 405,
1946819468
"character": 8
1946919469
}
1947019470
]
@@ -19519,7 +19519,7 @@
1951919519
"sources": [
1952019520
{
1952119521
"fileName": "packages/leadfoot/src/Server.ts",
19522-
"line": 2072,
19522+
"line": 2092,
1952319523
"character": 15
1952419524
}
1952519525
]
@@ -19637,7 +19637,7 @@
1963719637
"sources": [
1963819638
{
1963919639
"fileName": "packages/leadfoot/src/Server.ts",
19640-
"line": 375,
19640+
"line": 387,
1964119641
"character": 5
1964219642
}
1964319643
]
@@ -19693,7 +19693,7 @@
1969319693
"sources": [
1969419694
{
1969519695
"fileName": "packages/leadfoot/src/Server.ts",
19696-
"line": 2065,
19696+
"line": 2085,
1969719697
"character": 24
1969819698
}
1969919699
]
@@ -19737,7 +19737,7 @@
1973719737
"sources": [
1973819738
{
1973919739
"fileName": "packages/leadfoot/src/Server.ts",
19740-
"line": 2039,
19740+
"line": 2059,
1974119741
"character": 13
1974219742
}
1974319743
]
@@ -19778,7 +19778,7 @@
1977819778
"sources": [
1977919779
{
1978019780
"fileName": "packages/leadfoot/src/Server.ts",
19781-
"line": 408,
19781+
"line": 420,
1978219782
"character": 11
1978319783
}
1978419784
]
@@ -19896,7 +19896,7 @@
1989619896
"sources": [
1989719897
{
1989819898
"fileName": "packages/leadfoot/src/Server.ts",
19899-
"line": 384,
19899+
"line": 396,
1990019900
"character": 6
1990119901
}
1990219902
]
@@ -19959,7 +19959,7 @@
1995919959
"sources": [
1996019960
{
1996119961
"fileName": "packages/leadfoot/src/Server.ts",
19962-
"line": 2237,
19962+
"line": 2257,
1996319963
"character": 6
1996419964
}
1996519965
],
@@ -19977,7 +19977,7 @@
1997719977
"sources": [
1997819978
{
1997919979
"fileName": "packages/leadfoot/src/Server.ts",
19980-
"line": 2236,
19980+
"line": 2256,
1998119981
"character": 10
1998219982
}
1998319983
],
@@ -20000,7 +20000,7 @@
2000020000
"sources": [
2000120001
{
2000220002
"fileName": "packages/leadfoot/src/Server.ts",
20003-
"line": 2235,
20003+
"line": 2255,
2000420004
"character": 22
2000520005
}
2000620006
]
@@ -20043,7 +20043,7 @@
2004320043
"sources": [
2004420044
{
2004520045
"fileName": "packages/leadfoot/src/Server.ts",
20046-
"line": 2077,
20046+
"line": 2097,
2004720047
"character": 51
2004820048
}
2004920049
],
@@ -20065,7 +20065,7 @@
2006520065
"sources": [
2006620066
{
2006720067
"fileName": "packages/leadfoot/src/Server.ts",
20068-
"line": 2077,
20068+
"line": 2097,
2006920069
"character": 60
2007020070
}
2007120071
],
@@ -20087,7 +20087,7 @@
2008720087
"sources": [
2008820088
{
2008920089
"fileName": "packages/leadfoot/src/Server.ts",
20090-
"line": 2077,
20090+
"line": 2097,
2009120091
"character": 52
2009220092
}
2009320093
]
@@ -20103,7 +20103,7 @@
2010320103
"sources": [
2010420104
{
2010520105
"fileName": "packages/leadfoot/src/Server.ts",
20106-
"line": 2077,
20106+
"line": 2097,
2010720107
"character": 35
2010820108
}
2010920109
],
@@ -20126,7 +20126,7 @@
2012620126
"sources": [
2012720127
{
2012820128
"fileName": "packages/leadfoot/src/Server.ts",
20129-
"line": 2077,
20129+
"line": 2097,
2013020130
"character": 28
2013120131
}
2013220132
]
@@ -20143,7 +20143,7 @@
2014320143
"sources": [
2014420144
{
2014520145
"fileName": "packages/leadfoot/src/Server.ts",
20146-
"line": 2077,
20146+
"line": 2097,
2014720147
"character": 21
2014820148
}
2014920149
]
@@ -20184,7 +20184,7 @@
2018420184
"sources": [
2018520185
{
2018620186
"fileName": "packages/leadfoot/src/Server.ts",
20187-
"line": 2105,
20187+
"line": 2125,
2018820188
"character": 18
2018920189
}
2019020190
]
@@ -20225,7 +20225,7 @@
2022520225
"sources": [
2022620226
{
2022720227
"fileName": "packages/leadfoot/src/Server.ts",
20228-
"line": 2110,
20228+
"line": 2130,
2022920229
"character": 26
2023020230
}
2023120231
]
@@ -20310,7 +20310,7 @@
2031020310
"sources": [
2031120311
{
2031220312
"fileName": "packages/leadfoot/src/Server.ts",
20313-
"line": 2115,
20313+
"line": 2135,
2031420314
"character": 17
2031520315
}
2031620316
]
@@ -20403,7 +20403,7 @@
2040320403
"sources": [
2040420404
{
2040520405
"fileName": "packages/leadfoot/src/Server.ts",
20406-
"line": 2180,
20406+
"line": 2200,
2040720407
"character": 25
2040820408
}
2040920409
]
@@ -20496,7 +20496,7 @@
2049620496
"sources": [
2049720497
{
2049820498
"fileName": "packages/leadfoot/src/Server.ts",
20499-
"line": 2154,
20499+
"line": 2174,
2050020500
"character": 34
2050120501
}
2050220502
]
@@ -20537,7 +20537,7 @@
2053720537
"sources": [
2053820538
{
2053920539
"fileName": "packages/leadfoot/src/Server.ts",
20540-
"line": 2127,
20540+
"line": 2147,
2054120541
"character": 14
2054220542
}
2054320543
]
@@ -20578,7 +20578,7 @@
2057820578
"sources": [
2057920579
{
2058020580
"fileName": "packages/leadfoot/src/Server.ts",
20581-
"line": 2132,
20581+
"line": 2152,
2058220582
"character": 14
2058320583
}
2058420584
]
@@ -20671,7 +20671,7 @@
2067120671
"sources": [
2067220672
{
2067320673
"fileName": "packages/leadfoot/src/Server.ts",
20674-
"line": 2141,
20674+
"line": 2161,
2067520675
"character": 24
2067620676
}
2067720677
]
@@ -20764,7 +20764,7 @@
2076420764
"sources": [
2076520765
{
2076620766
"fileName": "packages/leadfoot/src/Server.ts",
20767-
"line": 2167,
20767+
"line": 2187,
2076820768
"character": 24
2076920769
}
2077020770
]
@@ -20852,7 +20852,7 @@
2085220852
"sources": [
2085320853
{
2085420854
"fileName": "packages/leadfoot/src/Server.ts",
20855-
"line": 2198,
20855+
"line": 2218,
2085620856
"character": 23
2085720857
}
2085820858
]
@@ -20879,7 +20879,7 @@
2087920879
"sources": [
2088020880
{
2088120881
"fileName": "packages/leadfoot/src/Server.ts",
20882-
"line": 2223,
20882+
"line": 2243,
2088320883
"character": 13
2088420884
}
2088520885
]
@@ -20926,7 +20926,7 @@
2092620926
"sources": [
2092720927
{
2092820928
"fileName": "packages/leadfoot/src/Server.ts",
20929-
"line": 2231,
20929+
"line": 2251,
2093020930
"character": 20
2093120931
}
2093220932
]

packages/leadfoot/src/Server.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,18 @@ export default class Server {
274274
data.status = 9;
275275
}
276276

277+
// At least BrowserStack in Aug 2020 responds with HTTP 422
278+
// and a message value of "Invalid Command" for at least
279+
// some unknown commands. These errors are more properly
280+
// represented to end-users using the Selenium status
281+
// UnknownCommand, so we make the appropriate coercion here
282+
if (
283+
response.status === 422 &&
284+
data.value?.message === 'Invalid Command'
285+
) {
286+
data.status = 9;
287+
}
288+
277289
// At least FirefoxDriver 2.40.0 responds with HTTP status
278290
// codes other than Not Implemented and a Selenium status
279291
// UnknownError for commands that are not implemented;
@@ -792,6 +804,14 @@ export default class Server {
792804
// At least IE11 will hang during this check, although option
793805
// selection does work with it
794806
updates.brokenOptionSelect = false;
807+
808+
// At least IE11 will fail this feature test because it only supports
809+
// the POST endpoint for timeouts
810+
updates.usesWebDriverTimeouts = true;
811+
812+
// At least IE11 will fail this feature test because it only supports
813+
// the POST endpoint for timeouts
814+
updates.brokenZeroTimeout = true;
795815
}
796816

797817
// It is not possible to test this since the feature tests runs in

0 commit comments

Comments
 (0)