Robot Class not working for file upload in MAC

Hi

Hope you can help me, robot class is not working. I’m using macbook m1
After opening the finder, nothing happens. it didn’t locate and select the file.

Hope you can help me.

Here’s my custom keyword code:

public class performUpload {
	@Keyword
	def uploadFile(TestObject to, String filePath) {
		WebUI.click(to)
		WebUI.delay(3)

		StringSelection ss = new StringSelection(filePath);
		Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null);
		WebUI.delay(1)
		
		Robot robot = new Robot();

        // Cmd + Tab is needed since it launches a Java app and the browser looses focus
   		robot.keyPress(KeyEvent.VK_META);
  		robot.keyPress(KeyEvent.VK_TAB);
		robot.keyRelease(KeyEvent.VK_META);
		robot.keyRelease(KeyEvent.VK_TAB);
  		robot.delay(500);

		//Open Goto window
		robot.keyPress(KeyEvent.VK_META);
		robot.keyPress(KeyEvent.VK_SHIFT);
		robot.keyPress(KeyEvent.VK_G);
		robot.keyRelease(KeyEvent.VK_META);
		robot.keyRelease(KeyEvent.VK_SHIFT);
		robot.keyRelease(KeyEvent.VK_G);
		robot.delay(5000);
		//Paste the clipboard value
		robot.keyPress(KeyEvent.VK_META);
		robot.keyPress(KeyEvent.VK_V);
		robot.keyRelease(KeyEvent.VK_META);
		robot.keyRelease(KeyEvent.VK_V);

		//Press Enter key to close the Goto window and Upload window
		robot.delay(5000);
		robot.keyPress(KeyEvent.VK_ENTER);
		robot.keyRelease(KeyEvent.VK_ENTER);
		robot.delay(3000);
		robot.keyPress(KeyEvent.VK_ENTER);
		robot.keyRelease(KeyEvent.VK_ENTER);
	}
}

Here’s the script:

CustomKeywords.'test.performUpload.uploadFile'(findTestObject('Add campaign_OR/div_Upload'), '/Users/user/Downloads/1.png')

Already addressed the issue. might be caused by execution of test to an external screen.

Using sendKeys or File Upload might work better for you…

1 Like