使用 Chromedriver 将文件上传到使用 plupload.Uploader 的网站

Upload a file with Chromedriver to a website that uses plupload.Uploader

我正在尝试将文件上传到网站,但是标准 SendKeys 方法不起作用,因为该网站使用 plupload.Uploader() 上传文件。

浏览按钮:

<button type="button" id="media-browse-button" class="btn btn-primary" style="position: relative; z-index: 1;">Browse...</button>

plupload:

var media_uploader = new plupload.Uploader({"runtimes":"html5","browse_button":"media-browse-button","container":"media-container","url":"\/upload","headers":{"Accept":"application\/json"},"chunk_size":"512kb","multipart_params":{},"filters":{"mime_types":[{"title":"Audio files","extensions":"mp3,m4a"}]}});media_uploader.init();document.getElementById('media-start-upload').onclick = function() {media_uploader.start();};

我试过:

string MediaFilePath = "file path here"
driver.FindElementByXPath("//*[@id=\"media-browse-button\"]").SendKeys(MediaFilePath);

然而,这只会打开一个浏览文件对话框,不会上传任何内容。

如果在整个网页中有

//input[@type='file']

然后 SendKeysupload 文件。

string MediaFilePath = "file path here"
driver.FindElementByXPath("//input[@type='file']").SendKeys(MediaFilePath);

请注意,您不应单击上传按钮,这样就可以完成工作。