Uploading files with paths problem

I’m trying to upload a text and an image file with Katalon on seafile.

When doing so it takes 2 times the same path instead of taking different ones.

	// Path to docs
	String path = String.format('C:\\Users\\s13bfe\\Downloads\\testdocsTxt\\%d.txt', i);
	String path2 = String.format('C:\\Users\\s13bfe\\Downloads\\testdocs\\p%d.jpg', i);
	
	
	// Upload Text Files
	Thread.sleep(1000)
	WebUI.waitForElementVisible(findTestObject('Object Repository/Page_Private Seafile/button_Hochladen'), 10)
	WebUI.click(findTestObject('Object Repository/Page_Private Seafile/button_Hochladen'))
	WebUI.waitForElementVisible(findTestObject('Object Repository/Page_Private Seafile/a_Dateien hochladen'), 10)
	CustomKeywords.'aPackage.Upload.uploadFile'(findTestObject('Object Repository/Page_Private Seafile/a_Dateien hochladen'), path)
	
	
	// Upload Images
	Thread.sleep(1000)
	WebUI.waitForElementVisible(findTestObject('Object Repository/Page_Private Seafile/button_Hochladen'), 10)
	WebUI.click(findTestObject('Object Repository/Page_Private Seafile/button_Hochladen'))
	WebUI.waitForElementVisible(findTestObject('Object Repository/Page_Private Seafile/a_Dateien hochladen'), 10)
	CustomKeywords.'aPackage.Upload.uploadFile'(findTestObject('Object Repository/Page_Private Seafile/a_Dateien hochladen'), path2)

Thre upload keyword:

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

	StringSelection ss = new StringSelection(filePath);
	Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null);
	Thread.sleep(100)
	Robot robot = new Robot();
	Thread.sleep(100)
	robot.keyPress(KeyEvent.VK_ENTER);
	Thread.sleep(100)
	robot.keyRelease(KeyEvent.VK_ENTER);
	Thread.sleep(100)
	robot.keyPress(KeyEvent.VK_CONTROL);
	Thread.sleep(100)
	robot.keyPress(KeyEvent.VK_V);
	Thread.sleep(100)
	robot.keyRelease(KeyEvent.VK_V);
	Thread.sleep(100)
	robot.keyRelease(KeyEvent.VK_CONTROL);
	Thread.sleep(100)
	robot.keyPress(KeyEvent.VK_ENTER);
	Thread.sleep(100)
	robot.keyRelease(KeyEvent.VK_ENTER);
}

}

hello @linusaegor

If you are calling 2 words, you can upload 2 files at the same time if you update the keyword as follows.

for example, the keyword 3 below loads the file at the same time.
You can check my blog for more information. // https://emineakturkblog.wordpress.com/2019/06/14/katalon-studio-native-popup-window-ile-birden-fazla-dosya-yukleme/

package dosya

import static com.kms.katalon.core.checkpoint.CheckpointFactory.findCheckpoint
import static com.kms.katalon.core.testcase.TestCaseFactory.findTestCase
import static com.kms.katalon.core.testdata.TestDataFactory.findTestData
import static com.kms.katalon.core.testobject.ObjectRepository.findTestObject

import com.kms.katalon.core.annotation.Keyword
import com.kms.katalon.core.checkpoint.Checkpoint
import com.kms.katalon.core.cucumber.keyword.CucumberBuiltinKeywords as CucumberKW
import com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords as Mobile
import com.kms.katalon.core.model.FailureHandling
import com.kms.katalon.core.testcase.TestCase
import com.kms.katalon.core.testdata.TestData
import com.kms.katalon.core.testobject.TestObject
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WS
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI
import java.awt.Robot
import java.awt.Toolkit
import java.awt.datatransfer.StringSelection
import java.awt.event.KeyEvent

import com.kms.katalon.core.annotation.Keyword
import com.kms.katalon.core.testobject.TestObject
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI
import internal.GlobalVariable
class dosyayukleme {
/**
* Refresh browser
*/

@Keyword
def uploadFile2 (TestObject to, String file1, String file2 , String file3) {
WebUI.click(to)
StringSelection ss = new StringSelection(“\””+file1+”\” ” +”\””+ file2 +”\” “+ file3 );
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null);
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_CONTROL)
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
}
}
1 Like

I’ll try this out.

hello again @linusaegor

No errors. Please note where I marked in the screenshot below. When selecting multiple files in the Windows pop-up window, the file path becomes text. In the code for this:

StringSelection ss = new StringSelection(“\””+file1+”\” ” +”\””+ file2 +”\” “+ file3 )

Does this even work, when the files are in different paths? Guess not?