首页 > 技术文章 > WebDriverAPI(5)

z-zzz 2019-02-28 10:33 原文

  将当前浏览器截屏

  测试网址

  http://www.baidu.com

  Java语言版本实例 

  @Test
  public void captureScreenInCurrentWindows() {
    driver.manage().window().maximize();
    driver.get(url);
    File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
    try {
      FileUtils.copyFile(scrFile,new File("D:\\a.png"));
    } catch (Exception e) {
      e.printStackTrace();
    }
   }

  杀掉Windows的浏览器进程

  测试前打开3个浏览器

  Java语言实例代码:

  @Test

  public void operateWindowsProcess(){

    WindowsUtils.tryToKillByName("firefox.exe");

    WindowsUtils.tryToKillByName("iexplore.exe");

    WindowsUtils.tryToKillByName("chrome.exe");

}

  将当前浏览器截屏

  测试网址

  http://www.baidu.com

  Java语言版本实例 

  @Test
  public void isElementTextPresent() {
    driver.manage().window().maximize();
    driver.get(url);
    WebElement text = driver.findElement(By.xpath("//*[@id='u1']/a[1]"));
    String contentText = text.getText();
    //判断页面文字是否匹配
    Assert.assertEquals("新闻", contentText);
    //判断页面文字是否包含
    Assert.assertTrue(contentText.contains("新"));
    //判断页面文字开头是否匹配
    Assert.assertTrue(contentText.startsWith("新"));
    //判断页面文字结尾文字是否匹配
    Assert.assertTrue(contentText.endsWith("闻"));
  }

  执行avaScript脚本

  测试网址

  http://www.baidu.com

  Java语言版本实例 

  @Test
  public void executeJavaScript() {
    driver.manage().window().maximize();
    driver.get(url);
    //声明一个JavaScript对象
    JavascriptExecutor js = (JavascriptExecutor) driver;
    //调用executeScript方法执行return document.title
    String title = (String) js.executeScript("return document.title");
    Assert.assertEquals("百度一下,你就知道", title);
    //获取按钮对象返回按钮文字
    String serachButtonText = (String) js.executeScript("var button = document.getElementById('su');return button.value");
    System.out.println(serachButtonText);
  }

  拖拽页面元素  

  测试网址

  https://jqueryui.com/draggable/

  Java语言版本实例 

  @Test
  public void dragePageElement() throws InterruptedException {
    driver.manage().window().maximize();
    driver.navigate().to(url);
    //找到需配置的对象
    Thread.sleep(6000);
    //切换至第一个iframe
    driver.switchTo().frame(0);
    WebElement draggable = driver.findElement(By.xpath("//*[@id='draggable']"));
    //向下拖动10个像素,共5次
    for(int i=0;i<5;i++){
      //0表示坐标不变
      new Actions(driver).dragAndDropBy(draggable, 0, 10).build().perform();
    }
    Thread.sleep(2000);
    //向右拖动10个像素,共5次
    for(int i=0;i<5;i++){
      new Actions(driver).dragAndDropBy(draggable, 10, 0).build().perform();
    }
    Thread.sleep(2000);
  }

  模拟键盘操作

  测试网址

  http://www.baidu.com

  Java语言版本实例

  @Test
  public void clickKeys() {
    driver.manage().window().maximize();
    driver.navigate().to(url);
    Actions action = new Actions(driver);
    action.keyDown(Keys.CONTROL); //按下ctrl
    action.keyDown(Keys.SHIFT); //按下shift
    action.keyDown(Keys.ALT); //按下Alt
    action.keyUp(Keys.CONTROL); //松开ctrl
    action.keyUp(Keys.SHIFT); //松开shift
    action.keyUp(Keys.ALT); //松开alt
    //模拟输入大写字符
    action.keyDown(Keys.SHIFT).sendKeys("abcdefg").perform();
  }

  模拟鼠标右键操作

  测试网址

  http://www.baidu.com

  Java语言版本实例  

  @Test
  public void rightClickMouse() {
    driver.manage().window().maximize();
    driver.get(url);
    Actions action = new Actions(driver);
    //模拟鼠标右键事件
    action.contextClick(driver.findElement(By.id("kw"))).perform();
  }

推荐阅读