У меня есть веб-приложение, использующее Outsystem для UI. Так кнопку Файл для загрузки имеет тип = «Отправить», а не тип = «файл», следовательно, код селенаЗагрузите файл с помощью selenium webdriver БЕЗ использования API-интерфейса Robot API или команды отправки selenium
driver.findElement(By.id("browse")).sendKeys("/path/to/the/file");
, используемый для загрузки файла не работает для меня. Я попытался код робота API, а
WebElement ele = driver.findElement(By.id("Browse"));
ele.click();
StringSelection ss = new StringSelection(FilePath);
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null);
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_CONTROL);
Thread.sleep(500);
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
который иногда работает нормально, но неисправного большую часть времени, потому что фокус удаляется из окна. Мой скрипт будет работать в течение длительного времени, в таком случае сохранение фокуса всегда в окне не является осуществимой идеей. Может ли кто-нибудь предложить мне любой другой способ решить проблему загрузки файла в Selenium?
Перед загрузкой файла попробуйте добавить явное ожидание, а затем перейдите к вашему коду. –
@jainishkapadia явное ожидание на чем? У меня мало ожиданий, прежде чем робот будет определен, и после того, как я нажму на enter. но когда откроется окно загрузки файла, как я могу подождать? Есть ли какой-нибудь код, чтобы сосредоточиться на окне загрузки? –
Поделитесь своим «HTML» –