반응형
입찰공고 조회
입찰공고 조회 화면입니다.
주소 : http://www.g2b.go.kr:8101/ep/tbid/tbidFwd.do
검색조건
공고명 : 인자로 처리
업무종류 : 용역
기간 : 최근1개월
입찰마감건 제외
검색건수 표시 체크
목록수 : 100개
위 조건으로 검색하도록 코드를 구현해 보겠습니다.
조회 코드
public void GetAnncmInfo(string word)
{
try
{
string searchWord = word;
_driver = new ChromeDriver(_driverService, _options);
//웹사이트 이동
_driver.Navigate().GoToUrl(anncmUrl);
//용역만 선택
var checkbox = _driver.FindElementById("taskClCds5");
checkbox.Click();
//id값이 bidNm인 태그 가져오기
IWebElement bidNm = _driver.FindElementById("bidNm");
//내용을 삭제 (버릇처럼 사용할 것!)
bidNm.Clear();
//검색어 입력후 엔터
bidNm.SendKeys(searchWord);
bidNm.SendKeys(OpenQA.Selenium.Keys.Return);
//최근 1개월 선택
var checkboxDate = _driver.FindElementById("setMonth1_1");
checkboxDate.Click();
//입찰마감건 제외
var checkboxExcept = _driver.FindElementById("exceptEnd");
checkboxExcept.Click();
//검색건수표시
var checkboxTotal = _driver.FindElementById("useTotalCount");
checkboxTotal.Click();
//목록수 100건 선택 (드롭다운)
var recordcountperpage = _driver.FindElementByName("recordCountPerPage");
SelectElement selector = new SelectElement(recordcountperpage);
selector.SelectByValue("100");
//검색 버튼 클릭
IWebElement searchBtn = _driver.FindElementByClassName("btn_mdl");
searchBtn.Click();
//검색결과 확인(확인 필요)
IWebElement elem = _driver.FindElementByClassName("results");
var div_list = elem.FindElements(By.TagName("div"));
//검색결과 조회수
IWebElement totalCnt = _driver.FindElementByClassName("inforight");
string cntStr = totalCnt.Text.Replace("[검색건수 :", "");
cntStr = cntStr.Replace("건]", "");
textBoxLog.Text += "조회된 건수는 " + cntStr + " 건 입니다.\r\n";
if (div_list.Count() > 0)
{
string tmpStr = "";
//검색결과 리스트로 저장
foreach (var div in div_list)
{
textBoxLog.Text += div.Text + "\r\n";
tmpStr += div.Text + "\r\n";
}
}
}
catch (Exception ex)
{
textBoxLog.Text += ex.ToString();
}
finally
{
_driver.Quit();
}
}
위 코드에서 기관만 제외한다던지 참가제한을 건다던지 추가적으로 조회 조건이 필요할 경우
Id, Name, 또는 classname 등으로 객채를 찾아 추가하여 사용하시면 됩니다.
참고
화면의 Selectbox 제어에 대해 참고사항을 알려 드립니다.
'도구 > Nuget 패캐지 관리자 > 솔루션용 Nuget 패키지 관리' 로 이동합니다.
webdriver 또는 Selenium.Support 로 검색하여 3.1 이상 안정적인 최신 버전을 설치합니다.
using OpenQA.Selenium.Support.UI;
//목록수 100건 선택 (드롭다운)
var recordcountperpage = _driver.FindElementByName("recordCountPerPage");
SelectElement selector = new SelectElement(recordcountperpage);
selector.SelectByValue("100");
설치 이후 SelectElement를 통해 selectbox를 컨트롤 할 수 있습니다.
SelectByValue : 실제값으로 선택
SelectByIndex : 셀렉트박스 순서로 선택
SelectByText : 표시되는 문자열로 선택
이전 글 보기
1. 2021.07.27 - [DEV/C#] - 크롤링으로 나라장터 검색-개요
2. 2021.07.27 - [DEV/C#] - 크롤링으로 나라장터 검색-개발환경 구축
3. 2021.08.04 - [DEV/C#] - 크롤링으로 나라장터 검색-화면 구성 및 사전규격
반응형
'DEV > C#' 카테고리의 다른 글
크롤링으로 나라장터 검색-크롬드라이버 업데이트 (1) | 2022.04.25 |
---|---|
크롤링으로 나라장터 검색-소스 및 실행파일 공개 (5) | 2021.08.23 |
크롤링으로 나라장터 검색-화면 구성 및 사전규격 (0) | 2021.08.04 |
크롤링으로 나라장터 검색-개발환경 구축 (0) | 2021.07.27 |
크롤링으로 나라장터 검색-개요 (0) | 2021.07.27 |