Roh*_*ule 7 selenium android google-chrome adb appium
我正在尝试使用 Appium 通过 Chrome将文件上传到https://the-internet.herokuapp.com/upload。但它总是导致ERR_ACCESS_DENIED
错误。
该文件位于Download
我设备的文件夹中。
参考下图:
我也用不同的组合尝试了以下功能,但没有帮助:noReset, autoGrantPermissions, fastReset
.
我的脚本:
from appium import webdriver
import time
def execute_script():
driver = webdriver.Remote(
command_executor='http://0.0.0.0:4723/wd/hub',
desired_capabilities={
"platform": "android",
"platformName": "android",
"platformVersion": "10",
"deviceName": "<xxxx>",
"udid": "<xxxx>",
"browserName": "chrome",
"automationName": "UIAutomator2",
"chromeOptions": {
"w3c": False
},
# "autoGrantPermissions": True,
# "noReset": True,
# "fastReset": True,
# "fullReset": False
}
)
driver.get('https://the-internet.herokuapp.com/upload')
up = driver.find_element_by_id("file-upload")
up.send_keys("/sdcard/Download/file.pdf")
driver.find_element_by_id("file-submit").click()
driver.quit()
driver = execute_script()
Run Code Online (Sandbox Code Playgroud)
脚本执行良好,直到这send_keys
一步。但是一旦file-submit
执行点击,就会导致上述错误。我也在https://fileconvoy.com/上尝试过,但结果是同样的错误。
版本详情:
1.17.0
尝试版本从1.10.x
到1.20.x
)我尝试过的一切:
adb -P 5037 shell 'pm grant com.android.chrome android.permission.READ_EXTERNAL_STORAGE android.permission.WRITE_EXTERNAL_STORAGE'
Run Code Online (Sandbox Code Playgroud)
browserName: "Chrome"
我还尝试指定appPackage and appActivity
开始 chrome ,而不是使用。但没有运气。我从根本上缺少什么吗?这在桌面浏览器上运行良好(使用 selenium)。但是我一直无法在我的移动设备上运行它。
如果还有什么我应该分享的,请告诉我。
在 Appium 上也创建了一个问题:https : //github.com/appium/appium/issues/15293
/sdcard/Download/
事实证明,Chrome在自动化期间无法访问目录。
尝试从目录上传文件/data/local/tmp/
(首先将文件推送到那里)是有效的。
其次,考虑到路径的文件下载和上传场景,Android 9 和 Android 10+ 之间存在细微差别/sdcard/Download/
(尚未给出原因):
因此,作为上传文件的解决方法,我们有两种方法:
/data/local/tmp/
(我发现唯一适用于 Android 10 及更高版本的目录)。/sdcard/Download/
目录上传。 归档时间: |
|
查看次数: |
197 次 |
最近记录: |