Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java selenium如何测试它是否具有文件的读取权限_Java_File Upload_File Io_Selenium_File Sharing - Fatal编程技术网

Java selenium如何测试它是否具有文件的读取权限

Java selenium如何测试它是否具有文件的读取权限,java,file-upload,file-io,selenium,file-sharing,Java,File Upload,File Io,Selenium,File Sharing,我们的测试应用程序通过Selenium远程控制在多个虚拟机上运行。 该应用程序位于测试控制器服务器上 测试应用程序用于测试第三方在线应用程序 如何测试Selenium RC在某些VM上是否具有对文件或文件夹的读取权限 selenium也有类似于file.canRead(filepath)的东西吗 在回答之前: 文件的canRead(filepath)将仅测试文件是否可从测试控制器服务器读取,如果文件在虚拟机上可读,则无法说明任何内容,而虚拟机上的实际浏览器正在打开(测试)第三方在线应用程序 基本

我们的测试应用程序通过Selenium远程控制在多个虚拟机上运行。 该应用程序位于测试控制器服务器上

测试应用程序用于测试第三方在线应用程序

如何测试Selenium RC在某些VM上是否具有对文件或文件夹的读取权限

selenium也有类似于
file.canRead(filepath)
的东西吗

在回答之前: 文件的
canRead(filepath)
将仅测试文件是否可从测试控制器服务器读取,如果文件在虚拟机上可读,则无法说明任何内容,而虚拟机上的实际浏览器正在打开(测试)第三方在线应用程序

基本上,我想通过selenium将一些文件上传到第三方在线应用程序


在进行上传之前,我希望确保文件可供上传(在虚拟机上)。

解决方案是在应用程序中创建下载链接,然后尝试通过Selenium下载文件。这样,您就可以获得用户代表体验


如果你真的想玩得开心,让应用程序创建一个带有当前日期的文件,然后让测试下载该文件(简单文本文件),并检查该文件是否包含日期。然后测试应用程序写入文件,用户读取文件,这也包括访问权限。

您使用的是哪种脚本语言?如果假设您要上传的文件位于“./data”目录下,那么在java中,您可以按照以下步骤进行检查

File file = new File("./data/myfile.ext");
boolean canUpload = file.exists() && file.canRead();

String fileToUpload = file.getCanonicalPath(); //file name with full path
注意:对于最新下载的文件,请使用

int size=file.listFiles().length-1;

boolean canUpload = file.listFiles()[size].canRead();

浏览器由selenium java应用程序(在服务器盒上运行)控制。浏览器正在一些虚拟机上运行。浏览器需要上传文件。因此,部分VM上的浏览器应该可以访问该文件。我不需要检查SeleniumJava应用程序对文件的访问。您的代码将检查selenium java应用程序对文件的访问,而不是每个VM上的selenium控制器浏览器。
int size=file.listFiles().length-1;

boolean canUpload = file.listFiles()[size].canRead();