0

While running selenium grid tests from my Windows Hub on my Mac Node, I cannot create a directory aka folder on the Mac Node. I think my code is correct. It worked for the Windows Node. I am suspecting I didn't set up the permissions to create the folder correctly on the Mac. Can someone tell me where would I get the correct permissions on the Mac to allow Selenium WebDriver Selenium Grid to create a folder on the Mac?

I tried getting info on the screencaptures folder and assigning read and write access to the logged in mac user that is also an admin and applying it to the enclosed items. I also did that to the root directory too. However, when I ran the tests it still could not create the directory aka folder on the Mac. I also tried setting File Sharing between my Windows and Mac computer, but that did not help either.

Has anyone created a folder on the Mac via Selenium WebDriver Java code? What setup steps did you have to take on the Mac to get it to work correctly?

GET THIS ERROR

java.io.IOException: Destination '\Users\xyz\screencapture
\Pg_WatchTV_Test14x01x19.322' directory cannot be created
at org.apache.commons.io.FileUtils.copyFile(FileUtils.java:1085)
at org.apache.commons.io.FileUtils.copyFile(FileUtils.java:1038)
at otherClasses.ScreenshotURL_MAC.takescreenshotURL
(ScreenshotURL_MAC.java:85)
 try{
 File scrFile = 
 ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); 
 if (scrFile != null)
 {
 System.out.println("Just taken screenshot.");
 }
 //Foldername is "/Users/xyz/screencaptures/error1"
 System.out.println("foldername: "+foldername);
 file_name = foldername + "/" + errorname + dateNow + ".jpg"; //Mac
 System.out.println("file_name: "+file_name);
 File directory2 = new File("/Users/xyz/screencaptures");
 boolean successful2 = directory2.canWrite();
 if (successful2)
 {
 System.out.println("Can write");
 }
 else
 {
 System.out.println("Can not write");
 }
 directory = new File(foldername);
 System.out.println("Directory is: "+directory);
 if(!directory.exists())
 {
 boolean successful = directory.mkdirs();
 if (successful)
 {
 // creating the directory succeeded
 System.out.println("Directory was created successfully.");
 }
 else
 {
 // creating the directory failed
 System.out.println("Failed trying to create the
 directory.");
 }
 }
 else
 {
 System.out.println("Directory exists");
 }
 FileUtils.copyFile(scrFile, new File(file_name));
asked Jul 10, 2016 at 21:23

1 Answer 1

1

A Platform independent way to create folder would be something like:-

File rootDir = File.listRoots()[0];
File dir = new File(new File(new File(new File(rootDir, "Users"), "xyz"), "screencapture"), "new folder you want to create");
if (!dir.exists()){
 dir.mkdirs();
}
answered Jul 21, 2016 at 16:58

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.