无法使用Windows文件上传弹窗上传文件,尝试使用Java机器人类。

问题描述 投票:0回答:1

我正在用Java Selemium编写上传文件的自动化测试用例。我的问题是,当我点击上传按钮时,Windows文件上传弹出窗口,我试着使用Robot类在弹出窗口中发送文件路径,但它没有输入任何内容,我想它不能在弹出窗口中设置焦点。尝试使用 driver.switchTo().alert() 也是。

我的代码如下。

List<WebElement> elecount = driver.findElements(By.xpath("//div/img[@title='Insert pictures inline']"));
        elecount.get(1).click(); //opens the Windows popup


        StringSelection stringSelection = new StringSelection("File path");
        Toolkit.getDefaultToolkit().getSystemClipboard().setContents(stringSelection, null);
        try{
            Robot robot = new Robot();
            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);
        }

非常感谢

java selenium-webdriver awtrobot
1个回答
0
投票

经过一番挣扎,找到了解决的办法,有一个绝对Xpath,可以用来直接发送文件路径进行上传。下面是代码。

File a = new File(System.getProperty("user.dir")+"your absolute path"); /在我的例子中,文件存在于项目目录下。

String absolute = a.getCanonicalPath();

WebElement addfile = driver.findElement(By.xpath("./input[@type='file']")); /这个绝对X路径是用来直接上传文件的,而不需要打开Windows文件上传弹窗。

addfile.sendKeys(absolute).这个绝对X路径是用来直接上传文件的,而不需要打开Windows文件上传弹窗。

© www.soinside.com 2019 - 2024. All rights reserved.