操作系统:Mac OS 10.13.4
设备:iPhone 6 / iOS 10.3.3
Python:3.6.5
Appium:1.8.0
Appium 的文档中有关于 push_file 的接口说明Push File,但是没有说明/path/to/device/foo.bar 具体的例子,想请教有成功在 iOS 真机上执行成功的吗?
查了一些资料(比较老了)说只在模拟器上实现了。但其实 Appium 使用的 ifuse 是可以在真机上完成 push_file 的操作的,如果没有实现真机,不知道出于什么考虑没有实现这个功能?
另外,因为我没有对 UI 操作的需求,所以可以不用 Appium。我也用 ios-deploy 和 ifuse 完成了大部分功能。但是没有办法通过命令行退出 APP,请教有什么工具可以吗?
我的方法:
driver.push_file('image_0.txt', 'test')
对于 path,尝试了如下 3 种写法:
/Documents/xx/image_0.txt
Documents/xx/image_0.txt
image_0.txt
image_0.txt 没有报错,但是没有在沙盒中找到 image_0.txt,其他两者均报错
答复如下:
By default the file is copied into the global media folder. If you want to put the file into the particular application container then the following target format should be used: @bundleId/. Read https://github.com/appium/appium-xcuitest-driver/blob/ed9740894ebf634789feb95e70c90f5b73f144e8/lib/commands/file-movement.js#L97for more details.
即:默认写入的是 media 文件夹,如果需要读写沙盒,要写成@com.xxx.xx.xxx/Documents/xxx.xx 这种格式,带上@bundleId/,再加上沙盒内的路径。亲测可用。