Drop file from system on selenium grid

20 Views Asked by At

The below code is working for local executions. But when I execute it on Selenium Grid (remote execution), I'm getting the error: invalid argument: File not found : /Users/egeiper/Develop/QA-refresh/src/test/resources/images/sampleImage1.jpg

I know that file exists, and method is working locally. But what should I change in the code for remote execution ? Thanks !

    public void uploadSampleImagesOnManager(final String fileName) {
    // This will be used for shadow (open-agent) upload DOM elements
    final String jsDropFile =
            "var tgt=arguments[0],e=document.createElement('input');e.type='"
                    + "file';e.addEventListener('change',function(event){var dataTrans"
                    + "fer={dropEffect:'',effectAllowed:'all',files:e.files,items:{},t"
                    + "ypes:[],setData:function(format,data){},getData:function(format"
                    + "){}};var emit=function(event,target){var evt=document.createEve"
                    + "nt('Event');evt.initEvent(event,true,false);evt.dataTransfer=da"
                    + "taTransfer;target.dispatchEvent(evt);};emit('dragenter',tgt);em"
                    + "it('dragover',tgt);emit('drop',tgt);document.body.removeChild(e"
                    + ");},false);document.body.appendChild(e);return e;";
    centerElement(sampleImageUploadContainer);
    final WebElement element = (WebElement) ((JavascriptExecutor) getDriver()).executeScript(jsDropFile, sampleImageUploadContainer);
    uploadFile(element, fileName, "src/test/resources/images/");
}

    protected void uploadFile(final WebElement element, final String fileName, final String path) {
    final String serverProperty = System.getProperty("SERVER");
    if (serverProperty != null && !"local".equals(serverProperty)) {
        ((RemoteWebDriver) getDriver()).setFileDetector(new LocalFileDetector());
    }
    element.sendKeys(new File(path + fileName).getAbsolutePath());
}
0

There are 0 best solutions below