我正在尝试以无头模式运行文件上传,我尝试了其他方法,但是没有用。如何以无头模式上传文件?
这不是输入标签,我不确定这是否会影响结果?
以下是我尝试过的所有方法:
在默认模式和无头模式下不起作用。
public class MyTools {
@Keyword
def uploadFile (TestObject to, String filePath) {
WebUI.click(to)
WebUI.delay(2)
StringSelection ss = new StringSelection(filePath);
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null);
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.delay(1000)
robot.keyPress(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_V);
robot.delay(1000) //NOTE THE DELAY (500, 1000, 1500 MIGHT WORK FOR YOU)
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
}
}
这种方式可以在默认的Chrome模式下运行,但始终会在无头模式下失败。
WebDriver driver = DriverFactory.getWebDriver()
String path = 'D:\\Daily task\\New PW User.csv'
driver.findElement(By.xpath("//*[@id='app']/div/section/div/section[1]/div[1]/div/button")).sendKeys(path);
在默认模式和无头模式下均不起作用。
有人可以帮我吗?
答案 0 :(得分:0)
机器人类无法在无头模式下工作,至少是not that simple。
此外,我认为您不需要它(不清楚您为什么在示例中需要它)。尝试将uploadFile()
方法更改为此:
@Keyword
def uploadFile (TestObject to, String filePath) {
WebUI.click(to)
WebUI.delay(2)
WebElement element = WebUiCommonHelper.findWebElement(to, 30)
element.sendKeys(filePath)
}
注意:
您需要导入com.kms.katalon.core.webui.common.WebUiCommonHelper
才能将测试对象转换为Web元素。