Skip to content

Commit d1a0d43

Browse files
committed
Fix TestUtilities.getIEVersion for IE11.
On behalf of juangj.
1 parent 77c7c92 commit d1a0d43

File tree

1 file changed

+13
-6
lines changed

1 file changed

+13
-6
lines changed

java/client/test/org/openqa/selenium/testing/TestUtilities.java

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -160,21 +160,28 @@ public static int getFirefoxVersion(WebDriver driver) {
160160
* @return The found version, or 0 if no version could be found.
161161
*/
162162
public static int getIEVersion(WebDriver driver) {
163+
String userAgent = getUserAgent(driver);
163164
// extract browser string
164165
Pattern browserPattern = Pattern.compile("MSIE\\s+\\d+\\.");
165-
Matcher browserMatcher = browserPattern.matcher(getUserAgent(driver));
166-
if (!browserMatcher.find()) {
166+
Matcher browserMatcher = browserPattern.matcher(userAgent);
167+
// IE dropped the "MSIE" token from its user agent string starting with IE11.
168+
Pattern tridentPattern = Pattern.compile("Trident/\\d+\\.");
169+
Matcher tridentMatcher = tridentPattern.matcher(userAgent);
170+
171+
Matcher versionMatcher;
172+
if (browserMatcher.find()) {
173+
versionMatcher = Pattern.compile("(\\d+)").matcher(browserMatcher.group());
174+
} else if (tridentMatcher.find()) {
175+
versionMatcher = Pattern.compile("rv:(\\d+)").matcher(userAgent);
176+
} else {
167177
return 0;
168178
}
169-
String browserStr = browserMatcher.group();
170179

171180
// extract version string
172-
Pattern versionPattern = Pattern.compile("\\d+");
173-
Matcher versionMatcher = versionPattern.matcher(browserStr);
174181
if (!versionMatcher.find()) {
175182
return 0;
176183
}
177-
return Integer.parseInt(versionMatcher.group());
184+
return Integer.parseInt(versionMatcher.group(1));
178185
}
179186

180187

0 commit comments

Comments
 (0)