XPath?
'특정한 요소, 속성의 경로' 입니다
직접 네이버로그인을 셀레니움으로 해보며 알아봅시다
XPath가져오기
먼저 로그인을 하기 위해 사진의 로그인버튼을 눌러야 합니다
어 그런데 우리는 마우스커서를 버튼에 올려서 클릭만 하면 되었는데 '로그인버튼'을 어떻게 코드로 작성할지 아리송하시죠? 그럴때 필요한게 바로 로그인버튼의 경로를 알려주는 XPath를 이용하면됩니다
성격상 각잡고 하려면 시작조차 안해서 대충이라도 올리려고 그림판으로 대충 표시만 했습니다.. 양해부탁...
아무튼 브라우저에서 F12를 누르면 개발자도구창이 나옵니다
우상단에 빨갛게 동그라미로 표시한 버튼을 누른뒤 웹에서 XPath를 얻고자하는 요소를 누릅니다
그러면 개발자 도구창에 파랗게 선택이 되는데 이것이 클릭한 요소입니다.
우리는 XPath값을 얻어야하므로 우클릭->Copy->Copy XPath를 눌러서 XPath값을 얻을 수 있습니다!!
컨트롤V하면 XPath를 볼 수 있는데
//XPath원본
//*[@id="account"]/a
//꼭 큰따옴표를 작은따옴표로 변경해야합니다
//*[@id='account']/a
이렇게 표시되는것을 알 수있습니다. 꼭 따옴표를 변경하세요!!
여기서 full XPath가 무엇인지 궁금해하실 수 있는데
XPath는 요소의 '상대경로'
full XPath는 '절대경로' 입니다
가끔 XPath로 작동이 되지 않는 웹이 있는데 이럴땐 fullXPath로 작동하면 대부분 잘 됩니다
자 이제 XPath를 가져올 수 있으니 클릭을 해봅시다
클릭
먼저 네이버URL로 이동합시다
//브라우저 생성
_driver = new ChromeDriver(_driverService, _options);
_driver.Navigate().GoToUrl("https://www.naver.com/");
아주 간단하죠? 브라우저 생성후 이동하면 됩니다
클릭코드는 아래와 같습니다
private void btn_click_loginpage_Click(object sender, EventArgs e)
{
try
{
//요소를 찾습니다
_web_elem = _driver.FindElement(By.XPath("//*[@id='account']/a"));
//클릭합니다
_web_elem.Click();
}
catch(NoSuchElementException exception)
{
//요소가 없습니다
}
}
정말 간단하죠? 만약 요소를 찾을 수 없다면 catch문으로 빠져나옵니다
다음 포스트에서는 페이지로딩대기, 아이디와 비밀번호입력까지 진행하겠습니다
https://github.com/ForestBird1/TestSelenium.git
'사이드프로젝트' 카테고리의 다른 글
[C#] 셀레니움,Selenium 사용법 (5) - 웹로딩대기, 자바스크립트 (0) | 2022.12.19 |
---|---|
[C#] 셀레니움,Selenium 사용법 (4) - 텍스트박스 쓰기,읽기,지우기 그리고 매크로 (0) | 2022.12.18 |
[C#] 셀레니움,Selenium 사용법 (2) - 옵션설정 (0) | 2022.12.17 |
[C#] 셀레니움,Selenium 사용법 (1) - 준비단계 (0) | 2022.12.17 |
[C#]구글 스프레드시트 Api를 활용한 출퇴근 기록기 만들기 (3) (0) | 2022.11.05 |