Согласно этому руководству, я могу загрузить файлы на веб-сайте при выполнении моих тестов локально и на удаленном сервере.
Как и в учебнике:
Для тех из вас, кто делает это локально, все, что вам нужно сделать, это использовать команду 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
.
Как я могу определить, выполняются ли мои тесты локально или удаленно?