title: Issue with WebElement.SendKeys(path): org.openqa.selenium.InvalidArgumentException: invalid argument: File not found
body: <p>I am having an issue uploading a file using Seleinum code when running on Jenkins.  My Selenium code is working fine locally and is able to uploads and finishes the test. However, when running on Jenkins, the WebElement.SendKeys(..) is throwing exception that says :org.openqa.selenium.InvalidArgumentException: invalid argument: File not found  ". I initiated a new File(..) in the code and tested the file existence by file.exists() and it does exist.</p>
  
  <pre><code>driver.get(Configuration.getEnvArg("test_url")+"mylist/doc-upload");
  String userDir = System.getProperty("user.dir");
  String appendPath = File.separator + "src" + File.separator + "main" + File.separator + "resources" + File.separator + "files" + File.separator + fileName + "." + fileExt;
  File file = new File(path);
  LOGGER.info(path + " is exist: " + file.exists());
  LOGGER.info("absolute path: " + file.getAbsolutePath());
  WebElement el = driver.findElement(By.id(submitId));
  el.sendKeys(file.getAbsolutePath());  // exception is thrown at this point.
  pause(20);
  </code></pre>
  
  <pre><code>(I replaced part of the path with xxx for posting purpose.)
  
  invalid argument: File not found : /tmp/jenkins/workspace/xxxx/regression-tests/src/main/resources/files/dummy.png
  20:49:30    (Session info: chrome=77.0.3865.75)
  20:49:30  Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
  20:49:30  System info: host: 'Unknown', ip: 'Unknown', os.name: 'Linux', os.arch: 'amd64', os.version: '4.4.0-1095-aws', java.version: '1.8.0_181'
  20:49:30  Driver info: org.openqa.selenium.remote.RemoteWebDriver
  20:49:30  Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 77.0.3865.75, chrome: {chromedriverVersion: 77.0.3865.40 (f484704e052e0..., userDataDir: /tmp/.com.google.Chrome.WI0TqR}, goog:chromeOptions: {debuggerAddress: localhost:46837}, javascriptEnabled: true, networkConnectionEnabled: false, pageLoadStrategy: normal, platform: LINUX, platformName: LINUX, proxy: Proxy(), setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify}
  20:49:30  Session ID: 8c8f0738dbd321b5fb7ccb6a46adadf817b61366f1a9b4054586695693c69e5d
  20:49:30  - com.qaprosoft.zafira.log.domain.MetaInfoMessage@236ded2c
  20:49:30  - com.qaprosoft.zafira.log.domain.MetaInfoMessage@874bd76
  20:49:30  - error processing.  Falling back to alternate logic.
  20:49:30  org.openqa.selenium.InvalidArgumentException: invalid argument: File not found : /tmp/jenkins/workspace/xxxx/regression-tests/src/main/resources/files/dummy.png
  20:49:30    (Session info: chrome=77.0.3865.75)
  20:49:30  Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
  20:49:30  System info: host: 'Unknown', ip: 'Unknown', os.name: 'Linux', os.arch: 'amd64', os.version: '4.4.0-1095-aws', java.version: '1.8.0_181'
  20:49:30  Driver info: org.openqa.selenium.remote.RemoteWebDriver
  20:49:30  Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 77.0.3865.75, chrome: {chromedriverVersion: 77.0.3865.40 (f484704e052e0..., userDataDir: /tmp/.com.google.Chrome.WI0TqR}, goog:chromeOptions: {debuggerAddress: localhost:46837}, javascriptEnabled: true, networkConnectionEnabled: false, pageLoadStrategy: normal, platform: LINUX, platformName: LINUX, proxy: Proxy(), setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify}
  20:49:30  Session ID: 8c8f0738dbd321b5fb7ccb6a46adadf817b61366f1a9b4054586695693c69e5d
  20:49:30    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
  20:49:30    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
  20:49:30    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
  20:49:30    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
  20:49:30    at org.openqa.selenium.remote.http.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:187)
  20:49:30    at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:122)
  20:49:30    at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:49)
  20:49:30    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:158)
  20:49:30    at com.qaprosoft.carina.core.foundation.webdriver.listener.EventFiringSeleniumCommandExecutor.execute(EventFiringSeleniumCommandExecutor.java:49)
  20:49:30    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552)
  20:49:30    at org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:285)
  20:49:30    at org.openqa.selenium.remote.RemoteWebElement.sendKeys(RemoteWebElement.java:106)
  20:49:30    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  20:49:30    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  20:49:30    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  20:49:30    at java.lang.reflect.Method.invoke(Method.java:498)
  20:49:30    at org.openqa.selenium.support.events.EventFiringWebDriver$EventFiringWebElement.lambda$new$0(EventFiringWebDriver.java:404)
  20:49:30    at com.sun.proxy.$Proxy43.sendKeys(Unknown Source)
  20:49:30    at org.openqa.selenium.support.events.EventFiringWebDriver$EventFiringWebElement.sendKeys(EventFiringWebDriver.java:429)
  </code></pre>
  
  <p>Any advise is appreciated.</p>
  
  <p>Thank you,
  Grace</p>