How to upload file using Selenium WebDriver in Java
Как загрузить файл с помощью Selenium WebDriver в Java
Кто-нибудь может сообщить мне, как загрузить файл с помощью Selenium с помощью Java-кода?
Когда я нажимаю на кнопку в приложении, оно открывается в новом окне, которое я могу использовать для выбора загрузки файла. Кнопка просмотра, разработанная Silverlight (C #).
myUploadElement - это идентификатор этого элемента (в данном случае кнопки), а в SendKeys вы должны указать абсолютный путь к контенту, который вы хотите загрузить (изображение, видео и т.д.). Selenium сделает все остальное за вас.
Имейте в виду, что загрузка будет работать только если элемент, который вы отправляете файлу, должен иметь форму <input type="file">
Это то, что я использую для загрузки изображения через окно загрузки:
//open upload window upload.click();
//put path to your image in a clipboard StringSelectionss=newStringSelection("C:\\IMG_3827.JPG"); Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null);
Если у вас есть текстовое поле для ввода пути к файлу, просто используйте sendkeys для ввода пути к файлу и нажмите на кнопку отправки. Если нет текстового поля для ввода пути к файлу и можно только нажать кнопку "Обзор" и выбрать файл из всплывающего окна Windows, вы можете использовать инструмент AutoIt, см. Шаг ниже, чтобы использовать AutoIt для того же,
Open Programs -> Autoit tool -> SciTE Script Editor.
Paste the following code in Autoit editor and save it as “filename.exe “(eg: new.exe)
Then compile and build the file to make it exe. (Tools → Compile)
Autoit Code:
WinWaitActive("File Upload"); Name of the file upload window(Windows Popup Name: File Upload) Send("logo.jpg"); File name Send("{ENTER}")
Then Compile and Build from Tools menu of the Autoit tool -> SciTE Script Editor.
Paste the below Java code in Eclipse editor and save
Java Code:
driver.findElement(By.id("uploadbutton")).click; // open the Upload window using selenium Thread.sleep("20000"); // wait for page load Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + "C:\\Documents and Settings\\new.exe"); // Give path where the exe is saved.