2013-02-02 15 views
5

Być może to pytanie jest zadawane w przeszłości, ale przeszukałem i nie znalazłem jeszcze rozwiązania.Jak mogę przesłać plik za pomocą pola wprowadzania danych przy użyciu przeglądarki internetowej w C#

Próbowałem wszystkich opcji, które znalazłem do tej pory, ale wszystko na próżno. Funkcje SendKeys nie działają, ponieważ nie wypełniają pola wprowadzania pliku ścieżką do pliku, który ma zostać przesłany. Nie można ustawić pola wprowadzania danych "SetAttribute", ponieważ nie ma dostępnego atrybutu wartości:

to wszystko.

Jeśli użyję element.focus(), pojawi się okno dialogowe "wybierz plik do przesłania", a teraz nie wiem, jak go programowo wypełnić i otworzyć w polu wprowadzania pliku.

Chcę, aby zostało ono zautomatyzowane, aby użytkownik nie musiał wchodzić w interakcje z aplikacją. Aplikacja powinna wybrać plik z dysku twardego z podanej ścieżki pliku i wypełnić inne pola formularza, a następnie rozpocząć przesyłanie, wszystkie za pomocą kontrolki przeglądarki w aplikacji formularza Windows.

Nie znaleziono rozwiązań!

Czy ktoś może pomóc? (To jest moje pierwsze pytanie kiedykolwiek na stackoverflow, więc jeśli robię coś źle to proszę kierować, to znaczy, jeśli nie wolno mi pisać takie pytanie!)

Oto kod:

 HtmlElementCollection heCollection = doc.GetElementsByTagName("input"); 
     foreach (HtmlElement heSpan in heCollection) 
     { 
      string strType = heSpan.GetAttribute("type"); 
      string strName = heSpan.GetAttribute("name"); 
      if (strType.Equals("file") && strName.Equals("file")) 
      { 
      heSpan.Focus(); 
      //heSpan.SetAttribute("value", "test.jpg"); 
      SendKeys.Send("C:\\1.txt"); 
      //heSpan.InnerText = "c:\\1.txt"; 
      } 

      //Title for the attachment 
      if (strName.Equals("field_title")) 
      { 
      heSpan.InnerText = "1.txt"; 
      } 
     } 

Kiedy ten kod zostanie wykonany, kursor zaczyna migać w odpowiednim polu wprowadzania (ponieważ ustawiłem heSpan.focus()), ale ścieżka pliku nie jest wyświetlana w polu wprowadzania pliku. Jeśli zaimplementuję heSpan.InvokeMember ("kliknij"); Otwiera okno wyboru pliku do przesłania w oknie dialogowym/popup i tam utknąłem, ponieważ nie wiem, jak dynamicznie wypełnić to okno, a następnie wstaw ścieżkę do pliku w polu wprowadzania pliku.

+0

Ponieważ to jest twoje pierwsze pytanie, pozwól, że ci coś doradzę. Wyjaśniłbym twoje pytanie w treści pytania, a nie tylko w tytule. Jeśli polegasz tylko na tytule, twoje aktualne pytanie może zostać zgubione. Proponuję również pokazać kod, aby zilustrować to, co wypróbowałeś i dlaczego nie działa. – psubsee2003

+0

Dodałem kod i wyjaśniłem trochę o tym, co próbowałem. Może być teraz całkiem jasne:/ – Yaaver

+0

Brak sugestii ??? – Yaaver

Odpowiedz

0

Spróbuj ustawić ostrość na formancie WebBrowser tuż przed ustawieniem ostrości w polu wprowadzania. To zadziałało dla mnie.

Powiązane problemy