correctly checks the driver supports DevTools #10819
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When using a driver like EventFiringWebDriver as a parameter for
JavaScriptEngine and trying to use StartEventMonitoring the constructor
will throw a NullReferenceException. This is caused by casting the
driver to IDevTools using "as" which will return null if the casting
failed, and incorrectly checking the field "session" instead
of "devToolsDriver" for null value.
fixes #10776
Description
This commit will correctly check in the JavascriptEngine constructor that the driver passed as a parameter supports DevTools
Motivation and Context
Previously the JavascriptEngine constructor checked the field session was not null, instead of the field devToolsDriver which would cause a NullReferenceException when using an incompatible driver like the EventFiringWebDriver. Now it correctly check the field devToolsDriver and, if the casting of the driver to IDevTools returns null, the JavascriptEngine constructor will correctly throw a WebDriverException with the message "Driver must implement IDevTools to use these features"
Types of changes
Checklist