无法使用 browserstack 本地测试从我的本地机器上传文件到移动真实设备
unable to upload files from my local machine on mobile real devices with browserstack local tests
我正在使用 Browserstack 对我本地计算机 (Windows 10) 上托管的 Web 应用程序执行一些测试。
我已经使用 Mocha 和 selenium-webdriver 编写了测试。
我需要测试一个文件上传,从我的本地环境中选择一个文件。浏览 Browserstack 文档,我想我已经找到了解决方案,它适用于 Windows 和 Mac OS 配置。
首先我使用的是 FileDetector
driver.setFileDetector(new remote.FileDetector);
然后我在 fileInput WebElement 上使用 sendKeys()
fileInput.sendKeys(imageFilePath);
相反,当我 运行 在真实 iOS 设备(iOS 13 - iPhone 8.0)上进行测试时,我得到:
WebDriverError: Appium error: File upload is not supported on real iOS devices
at Object.checkLegacyResponse (node_modules/selenium-webdriver/lib/error.js:546:15)
at parseHttpResponse (node_modules/selenium-webdriver/lib/http.js:509:13)
at doSend.then.response (node_modules/selenium-webdriver/lib/http.js:441:30)
at process._tickCallback (internal/process/next_tick.js:68:7)
From: Task: remote.FileDetector.handleFile(/home/admin/BuildAgent/work/491c0dc9a984bb27/test/resources/images/imageUploader/partImage02.jpg)
at WebDriver.schedule (node_modules/selenium-webdriver/lib/webdriver.js:807:17)
at zip.addFile.then.then.then.encodedZip (node_modules/selenium-webdriver/remote/index.js:586:27)
From: Task: WebElement.sendKeys()
at WebElement.sendKeys (node_modules/selenium-webdriver/lib/webdriver.js:2185:43)
at [...]
在 Android 真实设备上(例如 Android Pixel 4 - 默认浏览器):
UnsupportedOperationError: The URL '/wd/hub/session/45359c9c6c467dd8f00f6c1a638c993fe933bf67/file' did not map to a valid resource
at parseHttpResponse (node_modules/selenium-webdriver/lib/http.js:534:11)
at doSend.then.response (node_modules/selenium-webdriver/lib/http.js:441:30)
at process._tickCallback (internal/process/next_tick.js:68:7)
From: Task: remote.FileDetector.handleFile(/home/admin/BuildAgent/work/491c0dc9a984bb27/test/resources/images/imageUploader/partImage02.jpg)
at WebDriver.schedule (node_modules/selenium-webdriver/lib/webdriver.js:807:17)
at zip.addFile.then.then.then.encodedZip (node_modules/selenium-webdriver/remote/index.js:586:27)
From: Task: WebElement.sendKeys()
at WebElement.sendKeys (node_modules/selenium-webdriver/lib/webdriver.js:2185:43)
at [...]
我是否应该假设 Android 真实设备以及 iOS 不支持使用这些工具(Browserstack、selenium-webdriver)从本地计算机上传文件?
谢谢
LocalFileDetector 仅支持桌面浏览器,不支持移动设备。您可以在这里查看:https://github.com/appium/appium/issues/9120
我正在使用 Browserstack 对我本地计算机 (Windows 10) 上托管的 Web 应用程序执行一些测试。 我已经使用 Mocha 和 selenium-webdriver 编写了测试。
我需要测试一个文件上传,从我的本地环境中选择一个文件。浏览 Browserstack 文档,我想我已经找到了解决方案,它适用于 Windows 和 Mac OS 配置。
首先我使用的是 FileDetector
driver.setFileDetector(new remote.FileDetector);
然后我在 fileInput WebElement 上使用 sendKeys()
fileInput.sendKeys(imageFilePath);
相反,当我 运行 在真实 iOS 设备(iOS 13 - iPhone 8.0)上进行测试时,我得到:
WebDriverError: Appium error: File upload is not supported on real iOS devices
at Object.checkLegacyResponse (node_modules/selenium-webdriver/lib/error.js:546:15)
at parseHttpResponse (node_modules/selenium-webdriver/lib/http.js:509:13)
at doSend.then.response (node_modules/selenium-webdriver/lib/http.js:441:30)
at process._tickCallback (internal/process/next_tick.js:68:7)
From: Task: remote.FileDetector.handleFile(/home/admin/BuildAgent/work/491c0dc9a984bb27/test/resources/images/imageUploader/partImage02.jpg)
at WebDriver.schedule (node_modules/selenium-webdriver/lib/webdriver.js:807:17)
at zip.addFile.then.then.then.encodedZip (node_modules/selenium-webdriver/remote/index.js:586:27)
From: Task: WebElement.sendKeys()
at WebElement.sendKeys (node_modules/selenium-webdriver/lib/webdriver.js:2185:43)
at [...]
在 Android 真实设备上(例如 Android Pixel 4 - 默认浏览器):
UnsupportedOperationError: The URL '/wd/hub/session/45359c9c6c467dd8f00f6c1a638c993fe933bf67/file' did not map to a valid resource
at parseHttpResponse (node_modules/selenium-webdriver/lib/http.js:534:11)
at doSend.then.response (node_modules/selenium-webdriver/lib/http.js:441:30)
at process._tickCallback (internal/process/next_tick.js:68:7)
From: Task: remote.FileDetector.handleFile(/home/admin/BuildAgent/work/491c0dc9a984bb27/test/resources/images/imageUploader/partImage02.jpg)
at WebDriver.schedule (node_modules/selenium-webdriver/lib/webdriver.js:807:17)
at zip.addFile.then.then.then.encodedZip (node_modules/selenium-webdriver/remote/index.js:586:27)
From: Task: WebElement.sendKeys()
at WebElement.sendKeys (node_modules/selenium-webdriver/lib/webdriver.js:2185:43)
at [...]
我是否应该假设 Android 真实设备以及 iOS 不支持使用这些工具(Browserstack、selenium-webdriver)从本地计算机上传文件?
谢谢
LocalFileDetector 仅支持桌面浏览器,不支持移动设备。您可以在这里查看:https://github.com/appium/appium/issues/9120