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への動作運用検討
・画面キャプチャ切れてしまうのでは?の確認
・動作早くする余地がないかの確認。