Как загрузить файл через кнопку js-doc-upload, используя Selenium WD + Java + JUnit? - PullRequest
0 голосов
/ 14 мая 2018

Я хочу загрузить файл и код кнопки загрузки выглядит так:

<button class="panel-box-header__controls-bttn bttn-icon js-doc-upload" type="button">
            <svg class="icon icon-clip">
                <use xlink:href="#icon-clip"></use>
            </svg>
        </button>

Метод driver.findElement(By.xpath("...")).sendKeys("path of the file which u want to upload"); здесь не работает

Метод Robot также не работает:

    public void upload() throws Exception {
        uploadButton.click();
        Thread.sleep(2000);
//File Need to be imported
        File file = new File("/Users/admin/Desktop/test_image.jpg");
        StringSelection stringSelection= new StringSelection(file.getAbsolutePath());
//Copy to clipboard
        Toolkit.getDefaultToolkit().getSystemClipboard().setContents(stringSelection, null);
        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);
//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.keyPress(KeyEvent.VK_ENTER);
        robot.keyRelease(KeyEvent.VK_ENTER);
        robot.delay(500);
        robot.keyPress(KeyEvent.VK_ENTER);
        robot.keyRelease(KeyEvent.VK_ENTER);
    }

Когда я использую метод Robot, как в примере выше, происходит щелчок по кнопке загрузки, затем открывается окно с файлами, и больше ничего не происходит, указанный файл не загружается.

Может, у кого-то есть решение этой проблемы? Использование метода Robot или любых других опций

1 Ответ

0 голосов
/ 14 мая 2018

Вы не можете .sendKeys() кнопку или элемент SVG.Ни один из них не предназначен для приема ввода.

Метод .sendKeys() работает, когда сайт использует стандартный <input type="file /> вход для загрузки.

Вам нужно будет использовать робот или другой метод, чтобы нажать на кнопку и выбрать файл для загрузки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...