我试图从设备中选择pdf文件并将其上传到服务器。 selenium.common.exceptions.NoSuchElementException: Message: Unable to find element with id == lst-ib
用于从设备中选择pdf。
ACTION_GET_CONTENT
在活动结果上我得到了Uri并将其保存为String。
sel_book.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent();
intent.setType("application/pdf");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select PDF"), 1);
}
});
结果路径为public void onActivityResult(int requestCode, int resultCode, Intent result) {
if (resultCode == RESULT_OK) {
if (requestCode == 1) {
Uri uri = result.getData();
String uriString = uri.toString();
File myFile = new File(uriString);
path = myFile.getAbsolutePath();
}
}
}
。我需要使用它来创建一个新文件。 /document/primary:Download/Aptitude_2016_17.pdf
。但它并没有创建文件。 File selectedFile = new File(selectedFilePath);
返回false。我不知道为什么会这样。请帮我解决这个问题。提前谢谢。
答案 0 :(得分:1)
ACTION_GET_CONTENT用于从设备中选择pdf。
这允许用户选择一段内容。它不一定是文件。
在活动结果上我得到了Uri并将其保存为String。
这不是您使用Uri
的方式。
结果路径为/document/primary:Download/Aptitude_2016_17.pdf。
这不是文件系统路径。这是具有Uri
计划的content
的一部分。您没有从ACTION_GET_CONTENT
获取文件。你得到一个指向一段内容的Uri
。 Uri
可以指向用户和其他应用选择的任何内容:
Uri
方案file
的文件
使用ContentResovler
和openInputStream()
获取有关内容的流。直接使用它(使用您用于上传此内容的任何内容),或使用该流制作包含该内容副本的您自己的文件,以便您拥有可以使用的文件。