2017-05-05 4 views
0

그래서 나는 웹 사이트에 로그인을 자동화하려고 시도하고 버튼을 클릭하려고하는 메신저에는 ID가 없으므로 클릭을 할 수 없습니다.ID가없는 웹 사이트에서 버튼을 클릭하는 방법은 무엇입니까?

이는 내가 버튼을 클릭 어떻게

<button class="btn btn-sm btn-block btn-green ng-binding">Login</button> 

모습입니다?

이것은 내가 지금까지 가지고있는 것입니다.

private void btnFill_Click(object sender, EventArgs e) 
{ 
    wbBrowser.Document.GetElementById("login-username").InnerText = tbUsername.Text; 
    wbBrowser.Document.GetElementById("login-password").InnerText = tbPassword.Text; 
} 
+1

'runat = "server"'및'onserverclick = "btnFill_OnClick"'을 단추에 추가하려고 시도 했습니까? 그리고 HTML 버튼이 필요한 이유는 무엇입니까? – doutriforce

+0

ID를 수동으로 지정하거나 ASP.NET에서 "runat"attrib와 함께 ID를 지정하도록합니다. –

+0

아, 지금 혼란 스럽네요 하하 : p 정확히 무엇을 의미합니까? ID를 줄 수 있습니까? IM은 winform atm ASP를 사용하여 jsut되지 않습니다 – VargaDev

답변

0

ID를 지정하십시오.

<button class="btn btn-sm btn-block btn-green ng-binding" id="buttonSubmit">Login</button> 
+0

하지만 내 웹 사이트가 아니라 자사의 공개 웹 사이트. – VargaDev

+0

나는 약간 혼란 스럽다. 소스 코드에 액세스 할 수 없습니까? 나는 이것이 WordPress와 같은 것이라고 추측 할 것입니까? – Triforce711

+0

아니요 공개 웹 사이트이므로 구체적으로 Spotify하십시오. 웹 브라우저 컨트롤을 사용하여로드 한 다음 문서를 가져 와서 컨트롤과 ID에 액세스합니다. – VargaDev

2

요소를 찾으려면 Xpath를 사용하십시오. 이 같은

뭔가 :

driver.FindElement(By.XPath("//div/div/input")) 
0

클래스 및 사용을 찾기

$(".ng-binding").click(function(){ 

}); 
같은 클래스 이름을 가진 여러 개의 버튼이있는 경우

, 구체적

$("#priviousDIV .ng-binding").click(function(){ 
    //do something 
}); 
+0

webbrowser 컨트롤과 함께 winform 응용 프로그램을 사용하고 있는데 어떻게 클래스를 찾습니까? – VargaDev

+0

runat = "server"라고 쓰지 않으면 클래스 값이 아닌 id 값만 변경됩니다. 그래서 당신은 어떤 수업이라도 찾을 수 있습니다. – nikunjM

0

내 제안은 페이지의 DOM을 연구하고 지식을 사용하여 프로그래밍 방식으로 문서 트리를 탐색하는 것입니다. . 당신이 할 수있는 일은 ID가있는 버튼 위에 부모 요소를 찾아내어 발견 할 때까지 나무를 걸어 내려가는 것입니다.

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
    { 
     var ParentElement = webBrowser1.Document.GetElementById("parentId"); 
     var child = ParentElement.Children[0]; 
     child.InvokeMember("click"); 
    } 

기본적으로 페이지의 HTML 구조를 알고 있으면 찾고있는 요소를 찾을 수 있습니다.

모든 최신 웹 브라우저 (심지어 IE)에는 페이지의 HTML을 검사하고이를 사용하여 코드를 탐색 할 수있는 도구가 내장되어 있습니다.