В този урок ще научим как да се справяме с качването и изтеглянето на файлове.
Качване на файлове
За този раздел ще използваме http://demo.guru99.com/test/upload/ като наше тестово приложение. Този сайт лесно позволява на всеки посетител да качва файлове, без да изисква да се регистрира.
Качването на файлове в WebDriver се извършва чрез просто използване на метода sendKeys () в полето за избор на файл, за да въведете пътя към файла, който ще се качи.

Да приемем, че искаме да качим файла "C: \ newhtml.html". Нашият код на WebDriver трябва да бъде като този, показан по-долу.
пакет новпроект;внос org.openqa.selenium. *;импортиране на org.openqa.selenium.firefox.FirefoxDriver;публичен клас PG9 {публична статична void main (String [] args) {System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");String baseUrl = "http://demo.guru99.com/test/upload/";Драйвер за WebDriver = нов FirefoxDriver ();driver.get (baseUrl);WebElement uploadElement = driver.findElement (By.id ("uploadfile_0"));// въведете пътя на файла в полето за избор на файлuploadElement.sendKeys ("C: \\ newhtml.html");// поставете отметка в квадратчето „Приемам условията на услугата“driver.findElement (By.id ("условия")). click ();// щракнете върху бутона "UploadFile"driver.findElement (By.name ("send")). click ();}}
След като стартирате този скрипт, трябва да можете да качите файла успешно и да получите съобщение, подобно на това.
Не забравяйте да следвате две неща, когато качвате файлове в WebDriver
- Не е необходимо да симулирате щракване върху бутона "Преглед". WebDriver автоматично въвежда пътя на файла в текстовото поле за избор на файл на елемента
- Когато задавате пътя на файла във вашата Java IDE, използвайте правилния изходен знак за наклонената черта.
Изтегляне на файлове
WebDriver няма възможност за достъп до диалоговите прозорци за изтегляне, представени от браузърите, когато щракнете върху връзка или бутон за изтегляне. Въпреки това можем да заобиколим тези диалогови прозорци, като използваме отделна програма, наречена "wget".
Какво е Wget?
Wget е малка и лесна за използване програма от командния ред, използвана за автоматизиране на изтеглянията . По принцип ще имаме достъп до Wget от нашия скрипт WebDriver, за да извършим процеса на изтегляне.
Настройване на Wget
Стъпка 1: Във вашия C Drive създайте нова папка и я наречете като "Wget".
Изтеглете wget.exe от тук и го поставете в папката Wget, която сте създали от стъпката по-горе.
Стъпка 2: Отворете Run с натискане на клавиша windows + "R"; въведете "cmd и щракнете добре
Въведете командата "cd /", за да преминете към основната директория
Стъпка 3: Въведете командата, за да проверите дали дадената настройка работи
cmd / c C: \\ Wget \\ wget.exe -PC: - no-check-certificate http://demo.guru99.com/selenium/msgr11us.exe
Изглежда, че има проблем с писането в C устройство.
Стъпка 4: Трябва да отстраните грешките на wget грешките в командния ред, преди да изпълните кода с помощта на Selenium Webdriver. Тези грешки ще продължат да съществуват в Eclipse и съобщенията за грешки няма да бъдат толкова информативни. Най-добре първо да накарате wget да работи с помощта на командния ред. Ако работи в командния ред, определено ще работи в Eclipse.
В нашия пример, както е показано в стъпка 3, има проблем с писането в C устройство. Нека променим местоположението за изтегляне на D устройство и проверим резултатите.
cmd / c C: \\ Wget \\ wget.exe -PD: - no-check-certificate http://demo.guru99.com/selenium/msgr11us.exe
Messenger беше изтеглен успешно.
Преди да продължите, не забравяйте да изтриете изтегления файл
Използване на WebDriver и Wget
В следващия пример ще използваме WebDriver и wget за изтегляне на популярен софтуер за чат, наречен Yahoo Messenger. Нашият основен URL адрес ще бъде http://demo.guru99.com/test/yahoo.html.
Етап 1
Импортирайте пакета "java.io.IOException", защото по-късно в стъпка 4 ще трябва да хванем IOException.
Стъпка 2
Използвайте getAttribute (), за да получите стойността "href" на връзката за изтегляне и да я запазите като променлива String. В този случай ние нарекохме променливата като "sourceLocation".
Стъпка 3
Настройте синтаксиса за wget, като използвате следната команда.
Стъпка 4
Инициирайте процеса на изтегляне, като извикате wget от нашия код на WebDriver.
За да обобщим всичко, вашият код на WebDriver може да изглежда като показания по-долу.
пакет новпроект;импортиране на java.io.IOException;внос org.openqa.selenium. *;импортиране на org.openqa.selenium.firefox.FirefoxDriver;публичен клас PG8 {публична статична void main (String [] args) {System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");String baseUrl = "http://demo.guru99.com/test/yahoo.html";Драйвер за WebDriver = нов FirefoxDriver ();driver.get (baseUrl);WebElement downloadButton = driver.findElement (От.id ("messenger-download"));String sourceLocation = downloadButton.getAttribute ("href");Низ wget_command = "cmd / c C: \\ Wget \\ wget.exe -PD: --no-check-certificate" + sourceLocation;опитвам {Процес exec = Runtime.getRuntime (). Exec (wget_command);int exitVal = exec.waitFor ();System.out.println ("Стойност на изхода: + exitVal);} catch (InterruptedException | IOException ex) {System.out.println (ex.toString ());}driver.close ();}}
След като изпълните този код, проверете вашето D устройство и се уверете, че инсталационната програма на Yahoo Messenger е изтеглена успешно там.
Обобщение
- Качването на файлове в WebDriver се извършва чрез просто използване на метода sendKeys () в полето за избор на файл, за да въведете пътя към файла, който ще се качи.
- WebDriver не може да автоматизира изтеглянето на файлове самостоятелно.
- Най-лесният начин да изтеглите файлове с помощта на WebDriver е да използвате Wget.