Когда вы выполняете свой код на бамбуке, вы, вероятно, используете удаленный драйвер.Для загрузки файла вы можете установить filepath с sendKeys в поле ввода файла и использовать fileDetector.
Решение:
Если у вас есть поле ввода файла
<input id="fileinputfield" type="file">
тогда следующий код установит filepath
remoteWebDriver.setFileDetector(new LocalFileDetector());
WebElement input = remoteWebDriver.findElement(By.id("fileinputfield"));
input.sendKeys(filePath);
Здесь у вас есть статья , описывающая решение.
Возможные проблемы, с которыми вы можете столкнуться:
Получение remoteWebDriver.Вот один из способов, которым вы можете попробовать
RemoteWebDriver remoteWebDriver = (RemoteWebDriver) ((WebDriverFacade) getDriver()).getProxiedDriver();
Скрытое (не отображается) поле ввода файла.Если html:
<input id="fileinputfield" style="display:none;" type="file">
, вам нужно отобразить его для времени выполнения пути к файлу настройки кода:
JavascriptExecutor js = (JavascriptExecutor) getDriver();
js.executeScript("document.getElementById('filedata').style.display='inline-block';");
// RemoteWebDriver remoteWebDriver = (RemoteWebDriver) ((WebDriverFacade) getDriver()).getProxiedDriver();
// remoteWebDriver.setFileDetector(new LocalFileDetector());
// WebElement input = remoteWebDriver.findElement(By.id("fileinputfield"));
// input.sendKeys(filePath);
js.executeScript("document.getElementById('filedata').style.display='none';");