2013-04-01 57 views
0

我遇到了將文件路徑發送到type =「file」字段(文件上傳場景)的問題,該字段處理有點奇怪。如何使用JavaScript將路徑注入到type =「file」字段中

我正在使用webDriver與Java和不希望使用第三方工具,如autoIT。

請注意,嘗試element.sendKeys不起作用,因爲默認情況下該字段會打開webDriver無法處理的OS瀏覽文件類型窗口。

下面你可以看到它的樣子:

<input type="file" size="40" name="filename"> 

這不會進一步擴大,並表示該字段+瀏覽按鈕!

唯一的解決方案,我發現如何可以適用於上述情況(沒有sendKeys和autoIT)是通過JavaScript注入,但我不知道如何做到這一點。

感謝,

維維安

+0

使用'element.sendKeys()'是正確的方法。在這種情況下,瀏覽器驅動程序應該足夠聰明以解決OS文件選擇對話框的問題。我可以向你保證,這個方法不會在全球範圍內被破壞。 WebDriver項目已經針對這個確切的場景進行了測試,該場景已經被執行了數千次而沒有問題。 – JimEvans

+0

嗨,吉姆!我看到你對這個問題的其他評論。我知道webDriver能夠做到這一點,這就是爲什麼我一開始感到困惑。問題在於它如何處理locator方式的這些字段,因爲我已經看到很多人在處理這些上傳類型=文件字段的例子。謝謝! –

回答

0

感謝所有的意見傢伙!

這個解決方案,確實是派生出來的,但是隻有在人類歷史上產生了最慢的xpath之後,纔有了火線。

請注意,我以前的嘗試不起作用,因爲在"//input..."之前使用的xpath正在向Browse按鈕發送鍵,而xpath-wise與該字段是相同的元素(這是什麼魔法?) 。

所以是的,對於每個人也有文件上傳形式通過webDriver的問題 - 獲取延遲xpath和element.sendKeys。

乾杯!

相關問題