簡體   English   中英

使用硒將文件上傳到帶有geckodriver的bootsrap-fileinput

[英]Upload file using selenium to bootsrap-fileinput with geckodriver

我想知道如何使用Selenium和FirefoxDriver將文件上傳到bootstrap-fileinput元素。 我試過了

WebElement input = letter.findElement(By.cssSelector("#letter input"));
input.sendKeys("/home/me/loremIpsum.pdf");

我懂了

org.openqa.selenium.InvalidArgumentException: File not found: /home/me/loremIpsum.pdf

當然文件/home/me/loremIpsum.pdf確實存在。

使用chromedriver可以使用相同的代碼。

我整理了一個jsfiddle來顯示fileinput按鈕: https ://jsfiddle.net/yscgx2zc/

從我的應用程序(從Firefox開發人員控制台復制)呈現的html看起來像這樣。 找到靠近底部的input元素。

<div id="letter" class="form-group"><label class="control-label">The Letter<span>*</span></label><div class="file-input file-input-new"><div class="file-preview ">
    <div class="close fileinput-remove">×</div>
    <div class="file-drop-disabled">
    <div class="file-preview-thumbnails">
    </div>
    <div class="clearfix"></div>    <div class="file-preview-status text-center text-success"></div>
    <div class="kv-fileinput-error file-error-message" style="display: none;"></div>
    </div>
</div>
<div class="kv-upload-progress hide"><div class="progress">
    <div class="progress-bar progress-bar-success progress-bar-striped active" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width:0%;">
        0%
     </div>
</div></div>
<div class="input-group file-caption-main">
   <div tabindex="500" class="form-control file-caption  kv-fileinput-caption">
   <div class="file-caption-name"></div>
</div>

   <div class="input-group-btn">
       <button type="button" tabindex="500" title="Clear selected files" class="btn btn-default fileinput-remove fileinput-remove-button"><i class="glyphicon glyphicon-trash"></i>  <span class="hidden-xs">Remove</span></button>
       <button type="button" tabindex="500" title="Abort ongoing upload" class="btn btn-default hide fileinput-cancel fileinput-cancel-button"><i class="glyphicon glyphicon-ban-circle"></i>  <span class="hidden-xs">Cancel</span></button>

       <div tabindex="500" class="btn btn-primary btn-file">
       <i class="glyphicon glyphicon-folder-open"></i>&nbsp;  <span class="hidden-xs">Browse …</span>
       <input data-show-upload="false" data-allowed-file-extensions="[&quot;pdf&quot;]" data-allowed-file-types="[&quot;pdf&quot;]" accept="application/pdf" class="file" id="1502961793221" type="file"></div>
   </div>
</div></div></div>

您可以嘗試以下代碼塊:

WebElement input = letter.findElement(By.xpath("//input[@id='1502957288010']"));
input.sendKeys("/home/me/loremIpsum.pdf");

剛剛嘗試將文件上傳到http://plugins.krajee.com/file-basic-usage-demo ,這是用於指定引導文件輸入的演示頁面。

在Firefox和Chrome上均可使用。 唯一的問題是輸入可見性。 使其可見后,便可以上傳文件。

但是,您的錯誤消息對我來說似乎很明顯。 在磁盤上找不到您的文件。 請描述您的環境。 您正在使用本地還是遠程WebDriver 與遠程情況一樣,此文件應存在於啟動瀏覽器的目標VM上。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM