Вспомогательные инструменты
AutoIt
AutoIt - это бесплатный простой и легковесный инструмент для автоматизации графических windows приложений. Он построен на похожем на BASIC скриптовом языке, с помощью которого симулируются нажатия клавиш, движение мыши и манипуляции с окнами и контролами для автоматизации тех или иных задач.
В комплект также входит:
- AutoIt Window Info - инструмент для получения информации об окне и контролах, их атрибутах, необходимых для взаимодействия с ними.
- SciTE4AutoIt3 - инструмент для содания и редактирования скриптов.
- Aut2Exe - инструмент для компилирования AutoIt скриптов в запускаемые .exe файлы.
Скачать последнюю версию инструмента, а также найти детальную инвормацию о нем можно на официальном сайте: https://www.autoitscript.com/site/
AutoIt скрипт для работы с окном загрузки файла может выглядеть следубщим образом:
WinWaitActive("Open", "", "20")
If WinExists("Open") Then
ControlSetText("Open", "", "Edit1", $CmdLine[1])
ControlClick("Open", "", "&Open")
EndIf
Скомпилировав скрипт в FileDownLoadHandler.exe, его можно вызвать в тесте после появления диалога загрузки файла следующим образом:
Runtime.getRuntime().exec(new String[] {"FileDownLoadHandler.exe", "\"C:\\Picture.png\""})
Browser Mob Proxy
Browser Mob Proxy - это бесплантный прокси-сервер для веб браузера, с помощью которого можно отслеживать трафик, перехватывать и модифицировать запросы, создавать черные и белые списки ресурсов, имитировать медленную скорость соединения, собирать данные о производительности. Browser Mob Proxy можно использовать вместе с Selenium Webdriver или независимо.
Управлять прокси-сервером можно напрямую через Java интерфейс или через REST API. В мавен проект добавить зависимость можно указав в pom.xml файле:
<dependency>
<groupId>net.lightbody.bmp</groupId>
<artifactId>browsermob-proxy</artifactId>
<version>2.0-beta-8</version>
<scope>test</scope>
</dependency>
или
<dependency>
<groupId>net.lightbody.bmp</groupId>
<artifactId>browsermob-proxy</artifactId>
<version>2.0-beta-8</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-api</artifactId>
</exclusion>
</exclusions>
</dependency>
если вы используете свою версию Selenium Webdriver.
Сам тест же может выглядеть так:
import net.lightbody.bmp.core.har.Har;
import net.lightbody.bmp.proxy.ProxyServer;
import org.junit.Test;
import org.openqa.selenium.Proxy;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
public class SimpleTest {
@Test
public void bmpTest() throws Exception {
// запуск прокси сервера
ProxyServer server = new ProxyServer(4444);
server.start();
// получение Selenium proxy
Proxy proxy = server.seleniumProxy();
// конфигурация FirefoxDriver для использования прокси
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.PROXY, proxy);
WebDriver driver = new FirefoxDriver(capabilities);
// открытие страницы
driver.get(SOME_URL);
// здесь основная часть теста
driver.quit();
server.stop();
}
}
Официальный сайт Browser Mob Proxy http://bmp.lightbody.net/