CSV 다운로더 프로젝트를 진행 중입니다. 웹 페이지에서 생성 된 CSV 파일을 다운로드해야합니다. 및 HTML 민첩성을 사용하여, 나는 내 옆에서 모든 활동이없는WebBrowser 컨트롤 C# : 특정 링크를 찾아 프로그래밍 방식으로 "클릭"하시겠습니까?
<a href="/content/fo/contractvol/datafiles/OPTIDX_NIFTY_CE_31-08-2012_TO_31-08-2012.csv" target="_blank">Download file in csv format</a>
지금 내가 원하는 csv 파일에 대한 링크를 포함 정확한 링크를 발견, 응용 프로그램이 웹 페이지에서 링크를 감지해야한다 (내가 그것을 할 수 Htmlagility에 의해) 웹 페이지가 완전히 내 웹 브라우저에서 내 앱에서 탐색되면 파일을 다운로드해야합니다. 내가 SO click here 게시물 중 하나에서 몇 가지 예제를 시도했지만 점점
오류 : 개체 참조가 개체의 인스턴스로 설정되지 않았습니다.
HtmlElementCollection links = webBrowser.Document.GetElementsByTagName("A");
foreach (HtmlElement link in links) // this ex is given another SO post
{
if (link.InnerText.Equals("My Assigned"))
link.InvokeMember("Click");
}
어떤 몸은 그것을 수행하는 방법을 제안 할 수 있습니다?
내가 HtmlElementCollection links = webBrowser1.Document.Links
에 HtmlElementCollection links = webBrowser.Document.GetElementsByTagName("A");
로 변경하고
if (link.InnerText.Contains("My Assigned"))
{
link.InvokeMember("Click");
}
을 사용 :
는 해결. 더 나은 해결책을 가진 사람은 누구일까요?
HtmlElementCollection으로 변경되었습니다. links = webBrowser.Document.GetElementsByTagName ("A"); HtmlElementCollection links = webBrowser1.Document.Links 그것이 작동했습니다. 나는 sthis 최고의 연습 ?? – Vishwa
거의 GetElementsByTagname은 대소 문자를 구별한다고 생각할 것입니다. 링크는 대안이지만 [msdn doc] (http://msdn.microsoft.com/en-us/library/system.windows)에 명시된 바와 같이 앵커 (A)뿐만 아니라 링크 및 영역 태그도 제공합니다. .forms.htmldocument.links) 귀하의 경우에는 훌륭한 해결책입니다. – rene
@Vishwa TagName은 TagId가 임의의 Tag의 ID 속성/속성을 참조하는 것처럼 특정 태그의 name 속성/속성을 참조합니다. name = "A"태그는 없을 가능성이 있으므로 객체 오류가 발생합니다. 내 대답을 확인하십시오. –