전체 글 (66) 썸네일형 리스트형 Selenium 에서의 엘리먼트 위치 지정 NO.7 Ver.Java (Xpath 속성 값 부분 일치 사용) 구문 예제 설명 startswith() input[starts-with(@id,'ctrl')] id가 ctrl로 시작하는 엘리먼트를 반환한다. 예, ctrl_12 endswith() input[ends-with(@id,'_userName')] id가 _userName으로 끝나는 엘리먼트를 반환한다. 예, a_1_userName contains() Input[contains(@id,'userName')] id가 userName을 포함하는 엘리먼트를 반환한다. 예, panel_login_userName_textfield Selenium 에서의 엘리먼트 위치 지정 NO.6 Ver.Java (XPath로 엘리먼트 위치 지정) XPath는 XML문서에서 노드를 선택할 때 사용하는 쿼리 언어다. 대부분의 브라우저는 XHTML페이지를 HTML문서로 표현하는 것처럼 XPath를 지원한다. XPath로 엘리먼트를 지정하는 방법은 유연함도 있고 정상적으로 동작하겠지만, 느린 성능 때문에 최후의 방법으로 선택해야 한다. 절대 경로로 엘리먼트 찾기 WedElement userName = driver.findElement(By.xpath("html/body/div/div/form/input")); 상대 경로로 엘리먼트 찾기 WebElement userName = driver.findElement(By.xpath("//input")); 인덱스를 사용한 엘리먼트 찾기 WebElement userName = driver.findElement(By.. Selenium 에서의 엘리먼트 위치 지정 NO.5 Ver.Java (속성 값 부분 일치 사용 - CSS 셀렉터) 기준 예제 설명 ^= input[id^='ctrl'] id가 ctrl로 시작하는 엘리먼트를 반환한다. 예, ctrl_12 $= input[id$='_userName'] id가 _userName으로 끝나는 엘리먼트를 반환한다. 예, a_1_userName *= input[id*='userName'] id가 useName을 포함하는 엘리먼트를 반환한다. 예, panel_login_userName_textfield CSS 셀렉터는 일종의 패턴으로, HTML이나 XML 문서에서 엘리먼트와 일치하는 CSS 규칙의 일부이다. CSS 셀렉터는 다양한 메소드, 규칙, 패턴으로 페이지에서 엘리먼트 위치를 지정하는데, XPath 지정자보다 훨씬 정확하고 빠르다. Selenium 에서의 엘리먼트 위치 지정 NO.4 Ver.Java (태그 이름과 css셀렉터로 위치 지정) 태그 이름으로 위치 지정 WedElement loginButton = driver.findElement(By.tagName("button")); loginButton.click(); 태그로 표현된 행이 몇 개인지 알아보기 WebElement table = driver.findElement(By.id("summaryTable")); List rows = table.findElements(BytagName("tr")); assertEquals(10, rows.size()); CSS 셀렉터로 엘리먼트 위치 지정 XPath에 비해 매우 빠르고 확실하게 엘리먼트 위치를 지정할 수 있다. 절대 결로로 엘리먼트 찾기 WebElement userName = driver.findElement(By.cssSelector(.. Selenium 에서의 링크 위치 지정 Ver.Java 텍스트로 링크 찾기 WebElement gmailLink = driver.findElement(By.linkText("GMail")); assertEquals("Http://mail.google.com/", gmailLink.getAttribute("href")); 일부 텍스트만으로 링크 찾기 WebElement inboxLink = driver.findElemont(By.partialLinkText("Inbox")); System.out.println(inboxLink.getText()); Selenium 에서의 엘리먼트 위치 지정 NO.3 Ver.Java (여러 엘리먼트 지정 예제) Selenium 웸드라이버는 findElements()메소드로 엘리먼트 리스트를 얻는것이 가능하다. @Test public void testFindElements(){ //페이지에 있는 링크를 모두 가져온다. List links = driver.findElements(By.tagName("a")); //가져온 링크의 개수가 4개인지 확인한다. assertEquals(4, links.size()); //링크 리스트를 순회하면서 링크의 대상을 표시한다. for(WedElement link : links) System.out.println(link.getAttribute("href")); } Selenium 에서의 엘리먼트 위치 지정 NO.2 Ver.Java (메소드 예제) 엘리먼트를 찾을 때 권장하는 방법은 id나 name, class 속성을 이용해 엘리먼트의 위치를 지정하는 방식이다. driver.findElement(By.id(id)); WebElement username = driver.findElement(By.id("username")); WedElement password = driver.findElement(By.id("password")); driver.findElement(By.name(name)); 엘리먼트의 id 속성을 부여하지 않은 경우 id 속성 값이 엘리먼트를 구별하는 키 역할을 할 수 없는 경우 id 속성 값이 동적으로 생성되는 경우 WebElement username = driver.findElement(By.name("username")); .. Selenium 에서의 엘리먼트 위치 지정 NO.1 Ver.Java (메소드 종류) 먼저 Selelnium은 클라이언트 에서 개발자 도구르 사용해서 얻을 수 있는 엘리먼트 분석 기능을 사용할것이다. 개발자 도구의 Inspect element 옵션을 선택하면 Css, XPath를 엍을 수 있다. findElement 메소드로 엘리먼트 위치 지정. By Id driver.findElement(By.id()) By name driver.FindElement(By.Name()) By class name driver.findElement(By.className()) By tag name driver.findElement(By.tagName()) By lint text driver.findElement(By.linkText()) By partial link ext driver.findElement.. 이전 1 2 3 4 5 6 ··· 9 다음