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);
}
}
emine
July 4, 2019, 11:26am
2
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
emine
July 4, 2019, 11:39am
4
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?