我在我的項目中使用網頁瀏覽器控件,並打開一個具有文件選擇器對象的網頁。 現在我想以編程方式注入此文件選擇器對象中的文件路徑。網頁瀏覽器控件點擊
我試圖得到HtmlElement
,但我沒有在源代碼中找到元素Id。
編輯:
在網上有「瀏覽...」按鈕,打開文件選擇器,然後將文件路徑呈現在小的文本提交,我想注入的文件路徑我自己到文本字段。
我在我的項目中使用網頁瀏覽器控件,並打開一個具有文件選擇器對象的網頁。 現在我想以編程方式注入此文件選擇器對象中的文件路徑。網頁瀏覽器控件點擊
我試圖得到HtmlElement
,但我沒有在源代碼中找到元素Id。
在網上有「瀏覽...」按鈕,打開文件選擇器,然後將文件路徑呈現在小的文本提交,我想注入的文件路徑我自己到文本字段。
首先。 爲要更改值的元素建立名稱,標識或類。有很多方法可以做到這一點。我會爲firefox或IE開發人員工具欄使用firebug,或者只是查看頁面的源代碼並確定該字段的名稱/標識是什麼。現在,如果該字段沒有可以使用的名稱或ID,則可能可以獲取包含的元素並通過子元素迭代n次,直到獲得所需的元素。
對於我的嵌入式瀏覽應用程序我沒有在C#中的以下內容: -
// webBrowser is the name of the embedded IE browser in your app
var htmlDocument = webBrowser.Document;
if(htmlDocment!=null)
{
var field = htmlDocument.GetElementById("...the id...");
if(field!=null)
{
field.SetAttribute("value","...yourfilenamepathonyourmachine...");
}
// Now you would need to establish the ID of the submit element and click that
var submitButton = htmlDocument.GetElementById("...submit button...");
if(submitButton!=null)
{
submitButton.InvokeMember("Click");
}
// your code to loop?
}
那麼,你有問題的網頁的HTML?這可能幫助和更好的答案可以給
問候朱利安
我試圖使用它,但我無法找到這個元素在源html中的id – MTA
這種方法不會工作,值屬性是隻讀的文件輸入,請參閱http://msdn.microsoft.com /en-us/library/ms535126(v=VS.85).aspx。 –
盛江...有趣的是,你應該說這不起作用,這是生產代碼,並很好地工作謝謝 –
什麼是真正的目標? - 或者,你想達到什麼樣的? –
我希望應用程序能夠以編程方式選擇將被選擇的文件,然後將其上傳,而不是選擇文件並上傳它(因爲我想執行多個上傳,文件後文件) – MTA
爲什麼你不使用WebClient(http://msdn.microsoft.com/en-us/library/system.net.webclient.aspx)。?您可以上傳文件(http://msdn.microsoft.com/en-us/library/system.net.webclient.uploadfile.aspx)並設置請求標頭(http://msdn.microsoft.com/en-us /library/system.net.webclient.headers.aspx)作爲瀏覽器。 – 2011-12-13 09:52:01