2010-06-17 63 views
1

我碰到了一個障礙。我正在嘗試使用WatiN上傳文件。我可以加載上傳框,但它很快就會消失。我現在的代碼的最後一行是:WatiN文件上傳

ie.FileUpload(Find.ById("profile_file")).Click(); 

它加載對話框來選擇圖片但消失。是否可以自動設置框的路徑示例,加載「C:/Desktop/image.jpg」?

另外,是否有可能在繼續之前等待上傳完成?

非常感謝幫助。

謝謝。

回答

0

儘管這不會直接回答您的問題,但我懷疑有一個DialogWatcher會自動取消對話框。

+0

我已經設法使用FileUpload()的Set()方法,但當它上傳圖像時,它將關閉該框並導致「未指定的錯誤」。 實際的上傳工作,因爲我可以看到它說'上傳圖像'。 這裏有一個奇怪的人。 – 2010-06-17 21:12:31

+0

對不起,圖片實際上傳了。但它返回一個錯誤。 – 2010-06-17 21:12:50

0

爲什麼你需要從對話框中選擇..嘗試只是發送文本:

ie.FileUpload(Find.ById("profile_file")).Text = "C:/Desktop/image.jpg"; 
+0

我想你需要檢查這個問題&搜索的人也發佈它 http://stackoverflow.com/questions/3043391/use-watin-for-automation-upload-file-on-the-website – 2010-08-04 21:07:43

0

作爲一種安全措施,瀏覽器不允許腳本來設置文件輸入的值。想象一下,如果他們這樣做了,我可以在我的頁面上放置一個隱藏文件輸入,並將其值設置爲c:\ topsecretinfo.txt,而不需要用戶的許可。那麼當用戶提交表單時,我會擁有他們的絕密信息。

幸運了吧,今天我就遇到了這個問題,這是我做過什麼繞過它:

  • 創建一個名爲「testupload」頁面上的一個新的隱藏字段。
  • 使用華廷這個隱藏字段的路徑值設置爲我的測試 文件
  • 在服務器端,我檢查這個領域,如果它存在的, 不是讀取發佈文件,我讀到這文件從我的本地 機器。
0

這已經6年了,但如果其他人(如我)仍然遇到麻煩,這裏有一個解決方案。

填寫文件的對話,試試這個:

ie.FileUpload(Find.ById("profile_file")).Set("filename.txt"); 

這會自動拉起文件的對話。然後您會看到文本被自動輸入到文件選擇文本字段中。

不需要任何sendkeys。