2014-12-05 60 views
1

如何從一個遠程驅動程序的Selenium 2 gird中的輸入html標籤中選擇一個文件?如何從Selenium 2的輸入html標籤中選擇一個文件與遠程驅動程序

我正在測試我的網頁,它需要我選擇一個文件。

這裏是一個HTML片段:

<div class="form-group"> 
    <label for="csvFile">CSV bestand</label> 
    <input type="file" class="form-control" id="csvFile"> 
</div> 

而且這是一個Java代碼片斷:

selector = By.cssSelector("input#csvFile"); 
element = driver.findElement(selector); 
element.click(); 
element.sendKeys("myparcel-adresboek-example.csv"); 

但這似乎不再工作,或只爲硒1

+1

你可以分享它的HTML代碼片段,如果可能的話你的實現嗎? – 2014-12-05 10:35:52

回答

3

試試這個:

selector = By.cssSelector("input[type='file']"); 
element = driver.findElement(selector); 
element.sendKeys("complete path of the csv file"); 

無需點擊元素。因爲,當你這樣做時,它會打開一個超出瀏覽器上下文的窗口,不能由Selenium處理。

+0

這似乎沒有解決問題 – Funonly 2014-12-05 10:55:00

+1

@Funonly:在** sendKeys方法**中給出csv文件的完整路徑。正如我看到你所提供的路徑不完整。例如,如果**文件「test.csv」**位於** D驅動器**的**文件夾dir1 **中,則在上述** sendKeys **中發送的路徑將爲:** 'd:\\ DIR1 \\ test.csv' ** – Subh 2014-12-05 10:59:22

0

您可以通過添加

((RemoteWebDriver) driver).setFileDetector(new LocalFileDetector()); 

行代碼中,你所創建的驅動程序實例實現這一目標。因此,您不需要核心文件路徑(因爲它不需要您的項目始終在相同的操作系統平臺上部署在同一路徑上)。 等等在發送鍵

element.sendKeys(new File("dir1/test.csv").getAbsolutePath()); 
相關問題