С чем я работаю:
Для начала мой HTML выглядит следующим образом:
<form action="http://example.com/upload_photo_iframe.html" preview_div="upload_photo_div" submit_button="submit_btn" upload_field="photo_upload" target="photo_target" enctype="multipart/form-data" method="POST" id="uploadfile" name="uploadfile">
<input type="hidden" value="CSRF_iframe_photo_upload" name="csrfname">
<input type="hidden" value="3350427f0f068509081a09e283607214001b6912843ffb937b934208c91d9041c88faf0e66df4f3898ef202a34b669647f5b3fd9a2122e389acd3f53c33fc88b" name="csrftoken">
<label class="file-upload">
<p id="upload_text">Click Browse to choose a file then click Upload</p>
<input type="file" class="file" id="photo_upload" name="photo_upload" accept="image/*">
</label>
<input type="hidden" value="true" name="makeLargeThumb">
<input type="hidden" value="p" name="size">
<input type="hidden" value="P" name="type">
<input type="hidden" value="5120000" name="MAX_FILE_SIZE">
<input type="hidden" value="0" name="album_id" class="album_id_hidden">
<input type="submit" class="grey_btn" id="upload_btn" value="Upload" name="submit_btn">
<input type="hidden" name="callback" value="document.forms.uploadfile.handleReceive"><input type="hidden" name="fieldName" value="photo_upload"></form>
Я разместил все это, ввод файла - это следующая часть:
<input type="file" class="file" id="photo_upload" name="photo_upload" accept="image/*">
Моя ситуация:
Я использую Selenium WebDriver с PhantomJs (С#). До этого я использовал FireFox вместо PhantomJs и загружал файл следующим образом:
_driver.FindElement(photoUploadPath).SendKeys(imagePath);
Моя проблема:
Однако это падает, когда я использую PhantomJs.
Моя попытка решить проблему:
Я нашел следующую ветку, в которой обсуждается проблема: https://github.com/ariya/phantomjs/issues/10993
И я попробовал предложенное решение:
((PhantomJSDriver)driver).executePhantomJS("var page = this; page.uploadFile('input[type=file]', '/path/to/file');");
Однако, хотя это не вызывает ошибку, файл не загружается.
После поиска повсюду мой единственный вариант - спросить здесь, надеясь, что кто-то может мне помочь.
Мне кажется, что это общая проблема для многих людей, использующих PhantomJs+Selenium, и это заставляет задуматься, почему этот баг до сих пор не исправлен.
SendKeys()
? - person alecxe   schedule 03.04.2015