如果文件不存在,则无法使用硒(js)将键发送到文件表单字段

时间:2018-11-26 14:36:00

标签: javascript selenium selenium-webdriver selenium-chromedriver

当我尝试使用用于上传文件的字段填写表单时,如果文件存在,则可以很好地工作,但是当文件不存在时,它将以某种方式被拒绝。

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创建了表单字段)

0 个答案:

没有答案