• Selenium应用代码(常见封装的方法一)


    常见封装的方法:输入、点击、判断元素是否存在、根据句柄切换窗口、根据title切换窗口、滚动窗口、截图

    import java.awt.Rectangle;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.Iterator;
    import java.util.Set;

    import javax.imageio.ImageIO;

    import org.apache.commons.io.FileUtils;
    import org.eclipse.jetty.util.thread.Timeout;
    import org.openqa.selenium.By;
    import org.openqa.selenium.JavascriptExecutor;
    import org.openqa.selenium.NoSuchWindowException;
    import org.openqa.selenium.OutputType;
    import org.openqa.selenium.Point;
    import org.openqa.selenium.TakesScreenshot;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.WebElement;

    import Study.Day02.TestTabnumDetail;

    public class CommonClass {
    //封装元素输入的方法
    public static int t = 1;
    static String dir="F:\Users\Wangtest\screenshots\dianzhang";
    public static void sendKeys(WebDriver driver,By by, String value){

    driver.findElement(by).sendKeys(value);

    }

    //封装元素点击的方法
    public static void click(WebDriver driver,By by){

    driver.findElement(by).click();

    }


    //封装判断元素是否存在的方法
    public boolean doesWebElementExist(WebDriver driver,By by){

    try {
    driver.findElement(by);
    return false;
    } catch (Exception e) {
    // TODO: handle exception
    return true;
    }
    }

    //封装根据句柄切换窗口的方法
    public String getWindowHandle(WebDriver driver){

    String currentWindow = driver.getWindowHandle();

    return currentWindow;

    }

    public static void SwitchNewwindow(WebDriver driver){
    //得到当前句柄

    String currentWindow = driver.getWindowHandle();

    //得到所有窗口的句柄

    Set<String> handles = driver.getWindowHandles();

    //排除当前窗口的句柄,则剩下是新窗口

    Iterator<String> it = handles.iterator();

    while(it.hasNext()){

    if(currentWindow == it.next()) continue;

    driver.switchTo().window(it.next());

    }

    }

    //封装通过title切换窗口
    public boolean switchToWindow(WebDriver driver,String windowTitle){
    boolean flag = false;
    try {
    String currentHandle = driver.getWindowHandle();
    Set<String> handles = driver.getWindowHandles();
    for (String s : handles) {
    if (s.equals(currentHandle))
    continue;
    else {
    driver.switchTo().window(s);
    if (driver.getTitle().contains(windowTitle)) {
    flag = true;
    System.out.println("Switch to window: " + windowTitle + " successfully!");
    break; }
    else
    continue;
    }
    }
    } catch (NoSuchWindowException e) {
    System.out.printf("Window:" + windowTitle+ " cound not found!", e.fillInStackTrace());
    flag = false;
    }
    return flag;
    }

    //将滚动条滚到适合的位置
    public static void setScroll(WebDriver driver,int height){
    try {

    // String setscroll = "document.documentElement.scrollTop=" + height;
    String setscroll = "document.body.scrollTop=" + height;
    JavascriptExecutor jse=(JavascriptExecutor) driver;
    jse.executeScript(setscroll);

    } catch (Exception e) {
    System.out.println("Fail to set the scroll.");
    }
    }
    // public void TakeScreenShot(WebDriver driver,WebElement element) throws IOException {
    // File screen = ((TakesScreenshot) ]this.driver).getScreenshotAs(OutputType.FILE);
    //
    // Point p = element.getLocation();
    //
    // int width = element.getSize().getWidth();
    // int height = element.getSize().getHeight();
    //
    // Rectangle rect = new Rectangle(width, height);
    //
    // BufferedImage img = null;
    //
    // img = ImageIO.read(screen);
    //
    // BufferedImage dest = img.getSubimage(p.getX(), p.getY(), rect.width,
    // rect.height);
    //
    // ImageIO.write(dest, "png", screen);
    //
    // File f = null;
    //
    // f = new File(dir+getDateTime()+"_"+t+".jpg");
    //
    // FileUtils.copyFile(screen, f);
    //
    // }

    //获取当前时间
    public static String getDateTime(){
    SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd_HHmmss");
    return df.format(new Date());
    }

    //封装截图的方法
    public static void ScreenShot(WebDriver driver){
    File screenShot = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
    try {
    FileUtils.copyFile(screenShot, new File(dir+getDateTime()+"_"+t+".jpg"));
    ++t;
    } catch (IOException e) {
    e.printStackTrace();
    }
    }

    }

  • 相关阅读:
    语句的输入和输出 数据类型 运算符
    第一章 进制转换
    1. JDK 、 JRE 、JVM有什么区别和联系?
    office toolkit怎么用(以激活office professional 2013为例)
    PHP代码审计4-漏洞挖掘思路
    PHP代码审计3-SQL注入,CSRF,动态函数执行与匿名函数执行,unserialize 反序列化漏洞,变量覆盖,文件管理,文件上传
    PHP代码审计2-常用超全局变量,常用命令注入,常用XSS漏洞审计,文件包含
    PHP代码审计1-审计环境与调试函数
    小白日记54:kali渗透测试之Web渗透-补充概念(AJAX,WEB Service)
    小白日记53:kali渗透测试之Web渗透-SSL、TLS中间人攻击(SSLsplit,Mitmproxy,SSLstrip),拒绝服务攻击
  • 原文地址:https://www.cnblogs.com/testwang/p/5286703.html
Copyright © 2020-2023  润新知