Commit fe9bb9d
committed
WebDriver: handle invalid selector errors
https://bugs.webkit.org/show_bug.cgi?id=174619
Reviewed by Brian Burg.
Source/WebDriver:
Add InvalidSelector error and handle it in case of protocol server error.
* CommandResult.cpp:
(WebDriver::CommandResult::CommandResult):
(WebDriver::CommandResult::httpStatusCode):
(WebDriver::CommandResult::errorString):
* CommandResult.h:
Source/WebKit:
We are currently handling only XPathException and only when it's an invalid expression. In the xpath case, the
spec also says "If any item in result is not an element return an error with error code invalid selector.", so
we should also handle TYPE_ERR (The expression could not be converted to return the specified type.). However,
since the spec says "or other error", I think we can simplify this and simply throw InvalidSelector inside the
catch, without checking any specific error. This is causing 14 failures in selenium tests.
§12. Element Retrieval. Step 6: If a DOMException, SyntaxError, XPathException, or other error occurs during the
execution of the element location strategy, return error invalid selector.
https://www.w3.org/TR/webdriver/#dfn-find
* UIProcess/Automation/Automation.json: Add InvalidSelector error.
* UIProcess/Automation/atoms/FindNodes.js:
(tryToFindNode): Raise InvalidSelector in case of error.
* WebProcess/Automation/WebAutomationSessionProxy.cpp:
(WebKit::WebAutomationSessionProxy::evaluateJavaScriptFunction): Handle InvalidSelector exceptions.
Canonical link: https://commits.webkit.org/191463@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@219652 268f45cc-cd09-0410-ab3c-d52691b4dbfc1 parent bc5cfb7 commit fe9bb9dCopy full SHA for fe9bb9d
7 files changed
+52-6Lines changed: 52 additions & 6 deletions
File tree
Expand file treeCollapse file tree
Open diff view settings
Filter options
- Source
- WebDriver
- WebKit
- UIProcess/Automation
- atoms
- WebProcess/Automation
Expand file treeCollapse file tree
Open diff view settings
Collapse file
+15Lines changed: 15 additions & 0 deletions
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
| 1 | + |
| 2 | + |
| 3 | + |
| 4 | + |
| 5 | + |
| 6 | + |
| 7 | + |
| 8 | + |
| 9 | + |
| 10 | + |
| 11 | + |
| 12 | + |
| 13 | + |
| 14 | + |
| 15 | + |
1 | 16 | |
2 | 17 | |
3 | 18 | |
|
Collapse file
Source/WebDriver/CommandResult.cpp
Copy file name to clipboardExpand all lines: Source/WebDriver/CommandResult.cpp+5Lines changed: 5 additions & 0 deletions
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
98 | 98 | |
99 | 99 | |
100 | 100 | |
| 101 | + |
| 102 | + |
101 | 103 | |
102 | 104 | |
103 | 105 | |
| ||
120 | 122 | |
121 | 123 | |
122 | 124 | |
| 125 | + |
123 | 126 | |
124 | 127 | |
125 | 128 | |
| ||
150 | 153 | |
151 | 154 | |
152 | 155 | |
| 156 | + |
| 157 | + |
153 | 158 | |
154 | 159 | |
155 | 160 | |
|
Collapse file
Source/WebDriver/CommandResult.h
Copy file name to clipboardExpand all lines: Source/WebDriver/CommandResult.h+1Lines changed: 1 addition & 0 deletions
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
41 | 41 | |
42 | 42 | |
43 | 43 | |
| 44 | + |
44 | 45 | |
45 | 46 | |
46 | 47 | |
|
Collapse file
+23Lines changed: 23 additions & 0 deletions
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
| 1 | + |
| 2 | + |
| 3 | + |
| 4 | + |
| 5 | + |
| 6 | + |
| 7 | + |
| 8 | + |
| 9 | + |
| 10 | + |
| 11 | + |
| 12 | + |
| 13 | + |
| 14 | + |
| 15 | + |
| 16 | + |
| 17 | + |
| 18 | + |
| 19 | + |
| 20 | + |
| 21 | + |
| 22 | + |
| 23 | + |
1 | 24 | |
2 | 25 | |
3 | 26 | |
|
Collapse file
Source/WebKit/UIProcess/Automation/Automation.json
Copy file name to clipboardExpand all lines: Source/WebKit/UIProcess/Automation/Automation.json+2-1Lines changed: 2 additions & 1 deletion
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
57 | 57 | |
58 | 58 | |
59 | 59 | |
60 | | - |
| 60 | + |
| 61 | + |
61 | 62 | |
62 | 63 | |
63 | 64 | |
|
Collapse file
Source/WebKit/UIProcess/Automation/atoms/FindNodes.js
Copy file name to clipboardExpand all lines: Source/WebKit/UIProcess/Automation/atoms/FindNodes.js+4-5Lines changed: 4 additions & 5 deletions
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
100 | 100 | |
101 | 101 | |
102 | 102 | |
103 | | - |
104 | | - |
105 | | - |
106 | | - |
107 | | - |
| 103 | + |
| 104 | + |
| 105 | + |
| 106 | + |
108 | 107 | |
109 | 108 | |
110 | 109 | |
|
Collapse file
Source/WebKit/WebProcess/Automation/WebAutomationSessionProxy.cpp
Copy file name to clipboardExpand all lines: Source/WebKit/WebProcess/Automation/WebAutomationSessionProxy.cpp+2Lines changed: 2 additions & 0 deletions
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
281 | 281 | |
282 | 282 | |
283 | 283 | |
| 284 | + |
| 285 | + |
284 | 286 | |
285 | 287 | |
286 | 288 | |
|
0 commit comments