개발 공부
Selenium 에서의 엘리먼트 위치 지정 NO.4 Ver.Java (태그 이름과 css셀렉터로 위치 지정)
king yun bell
2023. 6. 2. 16:58
- 태그 이름으로 위치 지정
WedElement loginButton = driver.findElement(By.tagName("button"));
loginButton.click();
- <table> 태그로 표현된 행이 몇 개인지 알아보기
WebElement table = driver.findElement(By.id("summaryTable"));
List<WebElement> rows = table.findElements(BytagName("tr"));
assertEquals(10, rows.size());
- CSS 셀렉터로 엘리먼트 위치 지정
- XPath에 비해 매우 빠르고 확실하게 엘리먼트 위치를 지정할 수 있다.
- 절대 결로로 엘리먼트 찾기
WebElement userName = driver.findElement(By.cssSelector("htmlbody div div form input"));
WebElement userName = driver.findElement(By.cssSelector("html > body > div > div > form > input"));
- 상대 경로로 엘리먼트 찾기
WebElement userName = driver.findElement(By.cssSelsector("input"));
- Class 셀렉터로 엘리먼트 찾기
WebElement loginButton = driver.findElement(BycssSelector("input.login"));
WebElement loginButton = driver.findElement(By.cssSelector(.login"));
지금의 CSS 셀렉터는 className() 메소드와 기능이 비슷하다.
- ID 셀렉터로 엘리먼트 찾기
WedElement userName = driver.findElement(By.cssSelector("input#userName"));
//비슷한 코드
WedElement userName = driver.findElement(By.cssSeletor("#username"));
- Attribute 셀렉터로 엘리먼트 찾기
//<input> 엘리먼트의 name속성을 이용해 엘리먼트 위치 지정
WebElement userName = driver.findElemnet(By.cssSelsector("input[name=username]"));
//<img>태그의 art 속성 값을 이용해 엘리먼트 위치 지정
WebElement previousButton = driver.findElement(By.cssSelector("img[art='Previous']"));
//login 버튼의 <input> 엘리먼트 위치를 지정
WedElement previousButton = driver.findElement(By.cssSelector("input[type='submit'][value='Login']"));
- Attributes Name 셀렉터로 엘리먼트 찾기
//<img> 엘리먼트 중 alt 속성을 가진 엘리먼트만 찾기
List<WebElement> imagesWithAlt = driver.findElements(By.cssSelector("img[art]"));
//<img> 엘리먼트 중 alt 속성을 가지지 않은 엘리먼트만 찾기
List<WebElement> imagesWithoutAlt = driver.findElements(By.cssSelector("img:not([alt])"));