簡介¶
內容¶
selenium 主要調用的類¶
- org.openqa.selenium.chrome.ChromeDriver
 - org.openqa.selenium.chrome.ChromeDriverService
 - org.openqa.selenium.remote.RemoteWebDriver
 
可以調用自己寫的js¶
- org.openqa.selenium.remote.RemoteWebDriver.executeScript(String, Object[])
 
WebDriver driver = new AnyDriverYouWant();
if (driver instanceof JavascriptExecutor) {
    ((JavascriptExecutor)driver).executeScript("yourScript();");
} else {
    throw new IllegalStateException("This driver does not support JavaScript!");
}
driver.get("http://yahoo.com");
  // driver.manage().window().maximize();
  TimeUnit.SECONDS.sleep(2);
  ((JavascriptExecutor) driver).executeScript("window.open()");
  TimeUnit.SECONDS.sleep(2);
  ArrayList<String> tabs = new ArrayList<String>(driver.getWindowHandles());
  driver.switchTo().window(tabs.get(1));
  driver.get("https://www.google.com/");
  TimeUnit.SECONDS.sleep(2);
  ((JavascriptExecutor) driver).executeScript("window.open()");
  // 这个不能用
  // driver.findElement(By.tagName("body")).sendKeys(Keys.chord(Keys.CONTROL,Keys.RETURN));
  TimeUnit.SECONDS.sleep(2);
  tabs = new ArrayList<String>(driver.getWindowHandles());
  driver.switchTo().window(tabs.get(2));
  driver.get("http://www.baidu.com/");
  TimeUnit.SECONDS.sleep(2);
  driver.switchTo().window(tabs.get(0));
  TimeUnit.SECONDS.sleep(2);
  driver.switchTo().window(tabs.get(1));
  TimeUnit.SECONDS.sleep(2);
  driver.switchTo().window(tabs.get(2));
  TimeUnit.SECONDS.sleep(2);
  driver.switchTo().window(tabs.get(0));
  TimeUnit.SECONDS.sleep(2);
可以產生圖片¶
- org.openqa.selenium.remote.RemoteWebDriver.getScreenshotAs(OutputType
)  
    public static void getFile() throws Exception {
        WebElement Image = driver.findElement(By.cssSelector("#form1 > ul > li:nth-child(3) > img"));
        log.info(Image.getTagName());
        File screen = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
        int width = Image.getSize().getWidth();
        int height = Image.getSize().getHeight();
        log.info(width);
        log.info(height);
        BufferedImage img = ImageIO.read(screen);
        BufferedImage dest = img.getSubimage(Image.getLocation().getX(), Image.getLocation().getY(), width,
            height);
        ImageIO.write(dest, "png", screen);
        File file = new File(image, new Date().getTime() + ".png");
        FileUtils.copyFile(screen, file);
    }
chrome有一個headless,可以隱藏brower¶
        String chromeDriverPath = userDir + "/src/main/resources/chromedriver.exe";
        System.setProperty("webdriver.chrome.driver", chromeDriverPath);
        ChromeOptions options = new ChromeOptions();
        options.addArguments("--lang=es");
        options.addArguments("--headless");
        options.addArguments("--disable-gpu");
        driver = new ChromeDriver(options);
appium¶
可以用來測試手機