I was wondering what's the way to handle remote file upload with selenium-webdriver in typescript?
In javascript, this bit of code works:
import remote from 'selenium-webdriver/remote';
// import * as remote from 'selenium-webdriver/remote'; // used for typescript
browser.setFileDetector(new remote.FileDetector());
uploadElement.sendKeys(path.resolve(__dirname, f));
But in typescript, I'm getting Property 'FileDetector' does not exist on type 'typeof remote'. I have both @types/selenium-webdriver and selenium-webdriver installed already.
"@types/selenium-webdriver": "^2.53.39",
"selenium-webdriver": "^3.0.1"
Edit: Update with suggestion from bcherny
import { FileDetector } from 'selenium-webdriver';
return fileDetector.handleFile(browser.driver, f).then((fPath) => {
browser.setFileDetector(fileDetector);
return uploadElement.sendKeys(path.resolve(__dirname, fPath))
}
Edit: Working code
import * as remote from 'selenium-webdriver/remote';
browser.setFileDetector(new remote.FileDetector());
return uploadElement.sendKeys(path.resolve(__dirname, f))