Согласно этому учебнику , я могу загружать файлы на веб-сайт, пока выполняю свои тесты локально и на удаленном сервере.
Как в учебнике это:
Для тех из вас, кто делает это локально, все, что вам нужно сделать, это использовать
Команда sendKeys для ввода локального пути к файлу в любом поле файла.
Это работает как шарм во всех драйверах. При перемещении этого теста в
удаленный сервер (такой как, например, наш Selenium 2 Cloud), все вы
нужно сделать, это использовать метод setFileDetector, чтобы сообщить WebDriver
что вы загружаете файлы с локального компьютера на удаленный
сервер вместо простого ввода пути.
на удаленном сервере я должен использовать:
driver.setFileDetector(new LocalFileDetector());
...
upload.sendKeys("/Path/to/image.jpg");
и местные просто:
upload.sendKeys("/Path/to/image.jpg");
И все это прекрасно работает. Только проблема в том, что нет информации, как определить, выполняются ли мои тесты локально или на удаленном сервере.
Я попытался определить экземпляр webDriver:
WebDriver proxiedWebDriver = ((WebDriverFacade) getDriver()).getProxiedDriver();
if (proxiedWebDriver instanceof RemoteWebDriver) {
((RemoteWebDriver)proxiedWebDriver).setFileDetector(new LocalFileDetector());
}
но похоже, что оба (локальный и удаленный) дела используют RemoteWebDriver
во время работы, потому что в каждом случае я пропускаю if
условие.
Как определить, выполняются ли мои тесты локально или удаленно?