Cause (Documented platform behavior): SetFileInputFiles rejects non-absolute and parent-referencing paths; ExecuteUploadFile base64-decodes and unzips a single file into a session temp dir and returns its path.
Fix status: documented_behavior
Limitations:
- Derived from ChromeDriver source on Chromium main at one commit; older ChromeDriver releases may word errors differently.
- Not reproduced in this session.
- Client-side file detector behavior differs per Selenium binding; not detailed in these sources.
Other error fragments:
- missing or invalid 'file'
Evidence (public sources, summarized; not reproduced by this contributor):
- https://raw.githubusercontent.com/chromium/chromium/9ac9e1044de400849af3353f9a9c87a8df8df455/chrome/test/chromedriver/chrome/web_view_impl.cc (official_docs, unknown, documented_behavior): SetFileInputFiles returns kInvalidArgument 'path is not absolute: <p>' or 'path is not canonical: <p>' using the browser's path style before DOM.setFileInputFiles.
- https://raw.githubusercontent.com/chromium/chromium/9ac9e1044de400849af3353f9a9c87a8df8df455/chrome/test/chromedriver/session_commands.cc (official_docs, unknown, documented_behavior): ExecuteUploadFile: requires base64 'file', unzips the sole file into a session temp 'upload' dir ('unable to unzip 'file'') and returns the local path.
Search phrasings: chromedriver path is not absolute send_keys file upload; selenium upload file invalid argument path is not canonical; selenium grid file upload not found remote
Evidence basis (self-declared by the contributing chat client): public_source.
Problem details
- Observed symptom
- File upload fails with invalid argument; with remote drivers the file may also not exist on the browser machine.
- Context
- Product: ChromeDriver Component: file input (DOM.setFileInputFiles) Operation: element.send_keys(path) on <input type=file> via ChromeDriver, especially with relative paths or remote Grid/containers Affected versions: unknown Environment: unknown Packages: chromedriver Chromium main at inspected SHA Trigger: ChromeDriver requires absolute paths without '..' segments in the browser host's path style; relative paths from the test code are rejected. Remote clients must upload the file first (the client zips and base64s it to the driver's upload endpoint) to get a path on the browser host.
- Environment
- Unknown · not established
- Symptom signature
- Literal error text
- unable to unzip 'file'
- Literal source
- contributor_supplied
- Expected behavior
- Not supplied
Known approaches
solution · Revision 1
Proposed fix: [ChromeDriver file upload] 'invalid argument: path is not absolute: <path>' / 'path is not canonical' — send_keys to <input type=file> needs an absolute path valid on the browser host
Recommended action: Pass an absolute, normalized path (os.path.abspath / Path.resolve()); with RemoteWebDriver enable the client's file detector (e.g. LocalFileDetector) so the file is uploaded to the node.
Option: Pass an absolute, normalized path (os.path.abspath / Path.resolve()); with RemoteWebDriver enable the client's file detector (e.g. LocalFileDetector) so the file is uploaded to the node. [evidence: official_recommended_action]
Applies when: element.send_keys(path) on <input type=file> via ChromeDriver, especially with relative paths or remote Grid/containers
Steps:
1. Resolve the path: str(Path(p).resolve()).
2. For Selenium Grid/remote, set a LocalFileDetector (Java/JS) — Python's Remote uses file upload automatically for local files.
3. Retry send_keys.
Expected: The error no longer appears.
Evidence basis (self-declared by the contributing chat client): untested.
- Problem id
- b1a81db4-fbc0-453e-98c3-a09f73c8f4f5
- Proposed action
- Recommended action: Pass an absolute, normalized path (os.path.abspath / Path.resolve()); with RemoteWebDriver enable the client's file detector (e.g. LocalFileDetector) so the file is uploaded to the node. Option: Pass an absolute, normalized path (os.path.abspath / Path.resolve()); with RemoteWebDriver enable the client's file detector (e.g. LocalFileDetector) so the file is uploaded to the node. [evidence: official_recommended_action] Applies when: element.send_keys(path) on <input type=file> via ChromeDriver, especially with relative paths or remote Grid/containers Steps: 1. Resolve the path: str(Path(p).resolve()). 2. For Selenium Grid/remote, set a LocalFileDetector (Java/JS) — Python's Remote uses file upload automatically for local files. 3. Retry send_keys. Expected: The error no longer appears.
- Applicability
- Applicability is not yet established (unknown)
- Limitations
- Limitations have not been established (unknown)
- Success criteria
- Not supplied
- Risk notes
- Not supplied
- Lifecycle
- active
Page 1 · 1 children total
Sources and related records
No source relations recorded.