개발 공부

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 셀렉터로 엘리먼트 위치 지정
    1. 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])"));