웹 페이지에서 WebElements와 상호 작용하려면 먼저 요소의 위치를 식별해야합니다.
셀렌에서 사용할 수있는 키워드입니다.
- ID 별
- 클래스 이름
- 태그 이름으로
- 이름으로
- 링크 텍스트로
- 부분 링크 텍스트로
- CSS 선택기으로
- XPath를함으로써
- JavaScript 사용
아래 스크립트 예제를 고려하십시오.
<form name="loginForm">
Login Username: <input id="username" name="login" type="text" />
Password: <input id="password" name="password" type="password" />
<input name="login" type="submit" value="Login" />
위의 코드에서 사용자 이름과 비밀번호는 ID를 사용하여 설정됩니다. 이제 ID가있는 요소를 식별하려고합니다.
driver.findElement(By.id(username));
driver.findElement(By.id(password));
셀레늄은 7 개 언어를 지원하므로이 문서는 모든 언어로 요소를 찾을 수있는 아이디어를 제공합니다.
ID로
ID를 사용하여 요소를 찾는 방법의 예 :
<div id="collestWidgetEvah">...</div>
Java - WebElement element = driver.findElement(By.id("coolestWidgetEvah"));
C# - IWebElement element = driver.FindElement(By.Id("coolestWidgetEvah"));
Python - element = driver.find_element_by_id("coolestWidgetEvah")
Ruby - element = driver.find_element(:id, "coolestWidgetEvah")
JavaScript/Protractor - var elm = element(by.id("coolestWidgetEvah"));
클래스 이름으로
클래스 이름을 사용하여 요소를 찾는 방법의 예 :
<div class="cheese"><span>Cheddar</span></div>
Java - WebElement element = driver.findElement(By.className("cheese"));
C# - IWebElement element = driver.FindElement(By.ClassName("cheese"));
Python - element = driver.find_element_by_class_name("cheese")
Ruby - cheeses = driver.find_elements(:class, "cheese")
JavaScript/Protractor - var elm = element(by.className("cheese"));
태그 이름 별
태그 이름을 사용하여 요소를 찾는 방법의 예 :
<iframe></iframe>
Java - WebElement element = driver.findElement(By.tagName("iframe"));
C# - IWebElement element = driver.FindElement(By.TagName("iframe"));
Python - element = driver.find_element_by_tag_name("iframe")
Ruby - frame = driver.find_element(:tag_name, "iframe")
JavaScript/Protractor - var elm = element(by.tagName("iframe"));
이름으로
이름을 사용하여 요소를 찾는 방법의 예 :
<input name="cheese" type="text" />
Java - WebElement element = driver.findElement(By.name("cheese"));
C# - IWebElement element = driver.FindElement(By.Name("cheese"));
Python - element = driver.find_element_by_name("cheese")
Ruby - cheese = driver.find_element(:name, "cheese")
JavaScript/Protractor - var elm = element(by.name("cheese"));
링크 텍스트로
링크 텍스트를 사용하여 요소를 찾는 방법의 예 :
<a href="http://www.google.com/search?q=cheese">cheese</a>
Java - WebElement element = driver.findElement(By.linkText("cheese"));
C# - IWebElement element = driver.FindElement(By.LinkText("cheese"));
Python - element = driver.find_element_by_link_text("cheese")
Ruby - cheese = driver.find_element(:link, "cheese")
JavaScript/Protractor - var elm = element(by.linkText("cheese"));
부분 링크 텍스트
부분 링크 텍스트를 사용하여 요소를 찾는 방법의 예 :
<a href="www.google.com/search?q=cheese">search for cheese</a>
Java - WebElement element = driver.findElement(By.partialLinkText("cheese"));
C# - IWebElement element = driver.FindElement(By.PartialLinkText("cheese"));
Python - element = driver.find_element_by_partial_link_text("cheese")
Ruby - cheese = driver.find_element(:partial_link_text, "cheese")
JavaScript/Protractor - var elm = element(by.partialLinkText("cheese"));
CSS 선택자에 의한
CSS 선택자를 사용하여 요소를 찾는 방법의 예 :
<div id="food" class="dairy">milk</div>
Java - WebElement element = driver.findElement(By.cssSelector("#food.dairy")); //# is used to indicate id and . is used for classname.
C# - IWebElement element = driver.FindElement(By.CssSelector("#food.dairy"));
Python - element = driver.find_element_by_css_selector("#food.dairy")
Ruby - cheese = driver.find_element(:css, "#food span.dairy.aged")
JavaScript/Protractor - var elm = element(by.css("#food.dairy"));
XPath로
XPath를 사용하여 요소를 찾는 방법의 예 :
<input type="text" name="example" />
Java - WebElement element = driver.findElement(By.xpath("//input"));
C# - IWebElement element = driver.FindElement(By.XPath("//input"));
Python - element = driver.find_element_by_xpath("//input")
Ruby - inputs = driver.find_elements(:xpath, "//input")
JavaScript/Protractor - var elm = element(by.xpath("//input"));
'프로그램언어 > C#' 카테고리의 다른 글
람다식 (0) | 2021.06.23 |
---|---|
델리게이트와 이벤트 (0) | 2021.06.22 |
문제풀기1 (0) | 2021.06.07 |
크롬에서 자바스크립트 디버깅 (0) | 2020.04.02 |
크롬브라이우저에서 HTML 디버깅하기 (0) | 2020.04.02 |