I tried using selenium for upload file to website. Site is using "DropzoneJS", witch delete input type="file" and replace it.
Sourse html code:
<input type="file" id="input-file" name="input-file" value="file">
After loaded page sourse html replaced:
<div class="dz-message needsclick">
<div class="dropzone-image"></div>
<p class="dropzone-text">Drag and droup you file here <span>or</span></p>
<button class="cta low dropzone-upload-btn" type="button">Upload file</button>
</div>
I tried to set sourse file value:
String script = "document.getElementById('input-file').value='" + "D:\\\\temp\\\\file.txt" + "';";
((IJavaScriptExecutor)driver).ExecuteScript(script);
But of course got a error (because input tag with id="input-file" replaced):
OpenQA.Selenium.WebDriverException: 'javascript error: Cannot set property 'value' of null
How can I upload file?
Updated:
I found answer:
If input with type=file is hidden, needs find it. Follow code helped me:
var select = Driver.FindElement(By.CssSelector("input[type=file]"));
select.SendKeys("D:\\\\temp\\\\file.txt);