Selenium은 다양한 브라우저 및 운영 체제에서 실행할 수있는 웹 애플리케이션을 테스트하기위한 오픈 소스 및 휴대용 자동화 소프트웨어 테스트 도구입니다. 셀레늄은 실제로 단일 도구가 아니라 테스터가 응용 프로그램을보다 효과적으로 자동화하는 데 도움이되는 일련의 도구입니다.
때로는 <select> </select> 태그의 드롭 다운 상자가 발생합니다. 드롭 다운 상자의 옵션을 클릭하는 것이 반드시 가능하지는 않습니다. 셀레늄은 드롭 다운 상자를 처리하기 위해 특별히 선택된 클래스를 제공합니다.
<id = "status"onchange = ""name = "status"> <옵션 값 = ""> </옵션> <옵션 value = "0"> 검토되지 않음 </옵션> <옵션 value = "1"> 예비 검토 전달 </옵션> <옵션 값 = "2"> 검토 </옵션> <옵션 값 = "3"> 실패 </select> </select>
Python-Selenium에서의 작업
셀레늄 코드 선택을 볼 수 있도록 Python을 예제로 가져 가십시오 .py 파일 :
.../selenium/webdriver/support/select.py
수업 선택 :
def __init __ (self, wewebrem) : ""생성자. 주어진 요소가 실제로 선택된 태그인지 확인합니다. 그렇지 않은 경우 예기치 않은 TagNameException이 던져집니다. ! = "select": 예기치 않은 TagNameException을 높이기 ( "선택 선택 < %s>" %weblement.tag_name) self._el = weweblementmulti = self._el.get_attribute ( "Multiple") self.is_multiple = multi and multi! = "false"
선택 클래스의 구현을 보려면 요소를 찾아야합니다. 예제 문장이 예제에 나와 있습니다.
select (driver.find_element_by_tag_name ( "select")). select_by_index (2) def select_by_index (self, index) : ""주어진 인덱스에서 옵션을 선택하십시오. 이것은 단순히 계산하는 것이 아니라 요소의 "색인"속성을 검사함으로써 수행됩니다 .:Args:- 인덱스 -이 인덱스의 옵션이 선택됩니다 "" "match = str (index) matched = self.options : if opt.get_attribute ("index ") == match.is selfected (opt)가 아닙니다. nosuchelementException ( "인덱스 % d" % 인덱스로 요소를 찾을 수 없습니다)select_by_index () 메소드의 사용을 계속보고 위에 주어진 드롭 다운 상자의 요구 사항을 충족하십시오. 드롭 다운 박스의 옵션에는 index =”1”과 같은 인덱스 속성이 있어야하므로 필요합니다.
def select_by_value (self, value) : "" ""인수와 일치하는 값이있는 모든 옵션을 선택하십시오. self._el.find_elements (by.css_selector, css) 일치 = Opts에서 opt : self._setselected (opt) self.is_multiple : returnmatched = trueif not not not not not not in nosuchelementexception ( "값으로 찾을 수 없음 : % s" % 값).
select_by_value () 메소드가 요구 사항을 충족하며 <pootment> 태그의 값 값을 선택하는 데 사용됩니다. 마지막으로 다음 옵션을 사용하여 드롭 다운 상자를 선택할 수 있습니다.
selenium.webdriver.support.ceptrect import select에서
...
sel = driver.find_element_by_xpath ( "// 선택 [@id = 'status']")
(sel) .select_by_value ( '0') #nonot 검토를 선택하십시오
(셀) .select_by_value ( '1') #PreLiminary Review를 선택하십시오
(sel) .select_by_value ( '2') #review를 선택하십시오
선택 (셀) .select_by_value ( '3') #검토에 실패했습니다
Java-Selenium의 작업
물론 Java의 사용도 비슷합니다. 유일한 차이점은 구문 수준입니다.
패키지 com.jase.base;
import org.openqa.selenium.webdriver;
import org.openqa.selenium.by.byid;
import org.openqa.selenium.chrome.chromedriver;
import org.openqa.selenium.support.ui.select;
공개 클래스 선택 테스트 {
public static void main (String [] args) {
웹 드라이버 드라이버 = 새로운 Chromedriver ();
driver.get ( "http://www.you_url.com");
//…
SELECT SEL = NEW SELECT (Driver.FindElement (byId.xpath ( "// select [@id = 'status']]));
sel.selectbyvalue ( "0"); // 검토되지 않았습니다
sel.selectbyvalue ( "1"); // 예비 검토가 통과되었습니다
sel.selectbyvalue ( "2"); // 검토가 통과되었습니다
sel.selectbyvalue ( "3"); // 리뷰가 통과되지 않습니다
}
}