Selenium

  • 소개
  • Selenium 은 웹 프로그램 사용자 인터페이스 (UI) 를 테스트 하 는 데 자주 사용 되 는 프레임 워 크 입 니 다.그것 은 운영 단 에서 말단 기능 테스트 에 사용 되 는 강력 한 도구 이다.여러 프로 그래 밍 언어 로 테스트 를 작성 할 수 있 으 며, Selenium 은 하나 이상 의 브 라 우 저 에서 이 테스트 를 수행 할 수 있 습 니 다.Selenium 은 자바 나 Python 언어 로 개발 할 수 있 습 니 다.
  • InternetExplorerDriver

  • 드라이브 파일 이 필요 합 니 다 IEDriverServer. exe
  • FirefoxDriver
  • ChromeDriver
  • 자바 언어의 Helloworld
  • maven 의존 추가: [codesyntax lang = "xml"]
    <dependency> 
       <groupId>org.seleniumhq.selenium</groupId> 
       <artifactId>selenium-java</artifactId> 
       <version>2.9.0</version> 
    </dependency>
    [/ codesyntax] 다음은 자바 가 쓴 예 입 니 다. [codesyntax lang = "자바"]
    package org.suren.seleinum.test;
    
    import java.io.File;
    import java.util.List;
    import java.util.Random;
    
    import org.openqa.selenium.By;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.WebElement;
    import org.openqa.selenium.ie.InternetExplorerDriver;
    import org.openqa.selenium.remote.DesiredCapabilities;
    
    /**
     * @author surenpi.com
     * 
     * @2015 6 3 
     */
    public class InternetExplorerTest {
    
    	public static void main(String[] args) {
    		DesiredCapabilities capability=DesiredCapabilities.internetExplorer(); 
    		capability.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true); 
    		
    		File file = new File("d:/IEDriverServer.exe");  
    		System.setProperty("webdriver.ie.driver", file.getAbsolutePath());
    		
    		WebDriver webDriver = new InternetExplorerDriver(capability);
    		webDriver.get("http://surenpi.com");
    		
    		List<WebElement> eles = webDriver.findElements(By.tagName("a"));
    		
    		try
    		{
    			for(WebElement ele : eles)
    			{
    				String rel = ele.getAttribute("rel");
    				if("bookmark".equals(rel))
    				{
    					ele.click();
    				}
    			}
    		}
    		catch(Exception e)
    		{
    		}
    		
    		gotoPrevPage(webDriver);
    		
    //		webDriver.quit();
    	}
    	
    	public static void gotoPrevPage(WebDriver webDriver)
    	{
    		WebElement ele = webDriver.findElement(By.xpath("/html/body/div[3]/div/div[1]/div/nav"));
    		ele = ele.findElement(By.tagName("a"));
    		System.out.println(ele.getText());
    		
    		String href = ele.getAttribute("href");
    		
    		webDriver.get(href);
    		
    		try {
    			int sleepTime = new Random().nextInt(18000);
    			System.out.println(sleepTime);
    			
    			Thread.sleep(sleepTime);
    		} catch (InterruptedException e) {
    			e.printStackTrace();
    		}
    		
    		gotoPrevPage(webDriver);
    	}
    
    }
    [/codesyntax]
  • iFrame 의 요 소 를 찾 습 니 다
  • 만약 당신 이 찾 는 요소 가 iFrame 에 있다 면, id 나 css 등 을 통 해 직접 찾 을 수 없습니다.iframe 을 먼저 찾 은 다음 에 해당 하 는 요 소 를 찾 아야 합 니 다.webDriver.get("http://surenpi.com"); WebDriver frame = webDriver.switchTo().frame("cproIframe2004"); WebElement ele = frame.findElement(By.id("res0")); ele.click();
  • 새로 열 린 창 을 닫 는 방법
  • 다음은 코드 세 션 입 니 다. 팝 업 상 자 를 열 고 팝 업 상 자 를 닫 고 이전 페이지 로 돌아 갑 니 다. [codesyntax lang="java"]
    public static void findAdFrame(WebDriver webDriver)
    {
    	WebDriver frame = webDriver.switchTo().frame("cproIframe2004");
    	
    	WebElement ele = frame.findElement(By.id("res0"));
    	ele.click();
    	
    	String webHandle = webDriver.getWindowHandle();
    	String title = webDriver.switchTo().window(webHandle).getTitle();
    	
    	for(String handle : webDriver.getWindowHandles())
    	{
    		WebDriver handleDriver = webDriver.switchTo().window(handle);
    		String handleTitle = handleDriver.getTitle();
    		if(!title.equals(handleTitle))
    		{
    			handleDriver.close();
    		}
    	}
    	
    	webDriver.switchTo().window(webHandle);
    }
    [/codesyntax]
  • 창 설정
  • handleDriver.manage().window().setSize(new Dimension(1, 1)); handleDriver.manage().window().setPosition(new Point(0, 0));
  • 실행 요소 로 스크롤
  • WebElement ele = webDriver.findElement(By.xpath("/html/body/div[1]/div/div[1]/div/nav")); ((JavascriptExecutor) webDriver).executeScript("arguments[0].scrollIntoView();", ele);
  •  Python 언어의 Helloworld
  • 참조
  • http://www.ibm.com/developerworks/cn/web/wa-selenium2/ http://www.cnblogs.com/sunada2005/archive/2013/12/22/3486314.html http://www.ithov.com/linux/133271.shtml http://www.cnblogs.com/qingchunjun/p/4208159.html

    좋은 웹페이지 즐겨찾기