Was mit arbeite ich:nicht Datei mit PhantomJS hochladen (und Selen WebDriver)
Um zu beginnen, mein HTML sieht folgenden:
<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>
ich die ganze Sache geschrieben, die Datei-Eingabe ist der folgende Teil:
<input type="file" class="file" id="photo_upload" name="photo_upload" accept="image/*">
Meine Situation:
Ich verwende Selenium WebDriver mit PhantomJs (C#). Vor diesem verwendete ich FireFox statt PhantomJS und lud hoch Datei die folgende Art und Weise:
_driver.FindElement(photoUploadPath).SendKeys(imagePath);
Mein Problem:
Doch diese stürzt ab, wenn ich PhantomJS verwenden.
Mein Versuch, das Problem zu lösen: https://github.com/ariya/phantomjs/issues/10993
Und ich versuchte, die vorgeschlagene Lösung:
((PhantomJSDriver)driver).executePhantomJS("var page = this; page.uploadFile('input[type=file]', '/path/to/file');");
Doch während dieser
ich folgenden Thread diskutiert das Problem gefunden Es wird kein Fehler ausgegeben, die Datei wird nicht hochgeladen.
Nachdem ich weit und breit gesucht habe, ist meine einzige Option hier zu fragen, in der Hoffnung, dass mir jemand helfen kann.
Es scheint mir, dass dies ein häufiges Problem für viele Menschen mit PhantomJs + Selen ist und ich frage mich, warum dieser Fehler noch behoben werden muss.
Wie stürzt es bei 'SendKeys()' Ansatz ab? – alecxe
@alecxe Ich bekomme die Nachricht: "Die HTTP-Anfrage an den Remote-WebDriver-Server für die URL http: // localhost: 9648/Sitzung/c05b78a0-da4b-11e4-955d-1502c51c62ed/Element /: wdc: 1428097984752/Wert zeitlich festgelegt nach 60 Sekunden aus." – JensOlsen112
Ich bin mit der gleichen Situation konfrontiert - PhantomJS hängt an Sendkeys, das ist ein bekanntes Problem, und die Funktion executePhantomJS gibt mir keinen Fehler, aber lädt nicht die Datei. Haben Sie das gleiche Skript versucht, aber mit HtmlUnitDriver? – LittlePanda