Когда я пытаюсь заполнить форму с полем для загрузки файла, он работает нормально, если файл существует, но почему-то отклоняется, когда его нет.
const driver = await new webdriver.Builder().forBrowser('chrome').setLoggingPrefs({
browser: 'ALL',
}).build();
await driver.executeScript(`document.write('<input type="file" id="testfile" name="testfile">');`);
await driver.findElement(By.id('testfile')).sendKeys('/does/not/exist');
Я получаю эту ошибку:
WebDriverError: invalid argument: File not found : /does/not/exist
(Session info: chrome=70.0.3538.67)
(Driver info: chromedriver=2.42.591071 (0b695ff80972cc1a65a5cd643186d2ae582cd4ac),platform=Linux 4.15.0-36-generic x86_64)
at Object.checkLegacyResponse ([project]/node_modules/selenium-webdriver/lib/error.js:585:15)
at parseHttpResponse ([project]/node_modules/selenium-webdriver/lib/http.js:533:13)
at Executor.execute ([project]/node_modules/selenium-webdriver/lib/http.js:468:26)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)
, но я не могу понять, где находится процесс, который он проверяет, существует ли файл.Является ли это проверкой, которую выполняет браузер всякий раз, когда вы помещаете что-то в это поле, или проверкой, которую настроила библиотека селена?Или chromedriver
выполняет проверку?
Можно ли как-то убедить его принять мое несуществующее имя файла?Я тестирую с удаленным селеном, поэтому не всегда могу сделать так, чтобы файл существовал.Мне не нужно отправлять форму, просто заполните ее.
(создал поле формы, используя document.write
только для изоляции вопроса)