読者です 読者をやめる 読者になる 読者になる

tec_tec_blog

いちSEの日々の興味のあるところを取止めなく

Selenium WebDriver超入門

試行錯誤して動作&IEでのキャプチャまで実行できたのが、

以下のコード。

たぶん環境差異ありなので、参考にする際は注意されたし。

 

 

 

    
import java.io.File;
import org.openqa.selenium.By;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.io.FileHandler;
import org.openqa.selenium.remote.DesiredCapabilities;
public class Sample {

	public static void main(String[] args) {
		File file = new File("C:\\oper\\Java\\selenium\\IEDriverServer.exe");
		System.setProperty("webdriver.ie.driver", file.getAbsolutePath());

		//http://stackoverflow.com/questions/12034969/internetexplorerdriver-zoom-level-error
		DesiredCapabilities caps = DesiredCapabilities.internetExplorer();
		caps.setCapability("ignoreZoomSetting", true);
		WebDriver driver = new InternetExplorerDriver(caps);

		driver.get("http://www.google.com");
	    System.out.println("Page title is: " + driver.getTitle());
	    WebElement element = driver.findElement(By.name("q"));
	    element.sendKeys("Cheese!");

	    element.submit();
	    saveScreenshot(driver,new File("C:\\oper\\Java\\selenium\\sample1.png"));
	    driver.quit();
    }

    private static void saveScreenshot(WebDriver driver ,File saveFile){
        try {
            if(driver instanceof TakesScreenshot) {
                File tmpFile =
                    ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
                FileHandler.copy(tmpFile, saveFile);
            }
        } catch(Exception e) {
            throw new RuntimeException(e);
        }
    }

}

IEで操作するところまでできたが、動作がめちゃめちゃ遅い。特に文字入力作業のところ。。これでは、大規模開発テストではかなり心配。。
今後やること
Maven
Junit
・SeleniumIDE→Javaへの動作運用検討
・画面キャプチャ切れてしまうのでは?の確認
・動作早くする余地がないかの確認。