[英]ReactJS dropzone upload file via webdriver
尝试使用Selenium webDriver将图像上传到dropzone中。 已经为站点dropzonejsdotcom意识到了这一点,但是如果我尝试对reactJS dropzone使用脚本( http://reactdropzone.azurewebsites.net/example/ ),则会收到消息:“未知错误:未定义Dropzone”。
JavascriptExecutor executor;
public ReactDrpzn() {
Configuration.browser = "chrome";
this.executor = (JavascriptExecutor) WebDriverRunner.getWebDriver();
}
private By dropzone = By.cssSelector(".filepicker.dropzone.dz-clickable");
@Test
public void drzon() throws IOException, InterruptedException {
open("http://reactdropzone.azurewebsites.net/example");
$(dropzone).hover();
String script = "var myZone, blob, base64Image; myZone = Dropzone.forElement('.filepicker.dropzone.dz-clickable');" +
"base64Image = 'iVBORw0KGgoAAAANSUhEUgAAAO0AAABQCAYAAAD1GfIkAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsIAAA7CARUoSoAAAAEGSURBVHhe7dPBCcAwAAMxp/vv3ObRJQ4kMJ7gzrb3Doh4/gciRAsxooUY0UKMaCFGtBAjWogRLcSIFmJECzGihRjRQoxoIUa0ECNaiBEtxIgWYkQLMaKFGNFCjGghRrQQI1qIES3EiBZiRAsxooUY0UKMaCFGtBAjWogRLcSIFmJECzGihRjRQoxoIUa0ECNaiBEtxIgWYkQLMaKFGNFCjGghRrQQI1qIES3EiBZiRAsxooUY0UKMaCFGtBAjWogRLcSIFmJECzGihRjRQoxoIUa0ECNaiBEtxIgWYkQLMaKFGNFCjGghRrQQI1qIES3EiBZiRAsxooUY0UKMaCFGtBAjWkjZPk/PAZ8fwt/rAAAAAElFTkSuQmCC';" +
"function base64toBlob(r,e,n){e=e||\"\",n=n||512;for(var t=atob(r),a=[],o=0;o<t.length;o+=n){for(var l=t.slice(o,o+n),h=new Array(l.length),b=0;b<l.length;b++)h[b]=l.charCodeAt(b);var v=new Uint8Array(h);a.push(v)}var c=new Blob(a,{type:e});return c}" +
"blob = base64toBlob(base64Image, 'image / png');" +
"blob.name = 'file.png';" +
"myZone.addFile(blob);";
executor.executeScript(script);
Thread.sleep(3000);//смотрим результат
}
您可以从这里https://github.com/SaneQ/Drpzn导入Maven
基本上,分两个步骤:
JavaScript:
const {Builder, By, Key, until} = require('selenium-webdriver');
let driver = new Builder()
.forBrowser('chrome')
.build();
driver.get('http://reactdropzone.azurewebsites.net/example/');
driver.findElement(By.xpath('.//input[@type="file"]')).sendKeys('full_path_to_your_file.png');
蟒蛇:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('http://reactdropzone.azurewebsites.net/example/')
input_field = driver.find_element_by_xpath('.//input[@type="file"]')
input_field.send_keys('full_path_to_your_file.png')
因此,我找到了在react dropzone中上传图片的简便方法。 React在DOM中创建隐藏输入(正文>输入),然后我只使用硒sendKeys(“ pathToImg”)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.