zoukankan      html  css  js  c++  java
  • Java Selenium 笔记

    目录
    一、基本语句
      1、循环控制(break,continue)
      3、字符的替换(replace,repalceFirst,replaceAll,regex)
      4、字符串的连接("+",append)
      5、字符串的截取和分割(substring,split)
      6、文件夹的创建与删除(mkdirs,delete)
      7、文件的读写(BufferedWrite,BufferedReader)
      8、系统时间的获取( ((Calendar.getInstance()).get(Calendar.YEAR) )
      9、时间格式的转换(SimpleDateFormat)
    二、浏览器自动化操作(基于maven包)
    (一)对浏览器的基本操作
    (二)网页元素的定位
      1、name定位
      2、class定位
      3、css定位
      4、ID定位
      5、tagName定位
      6、link,partialLink定位(a)
      7、xpath定位
    (三)对鼠标的悬停操作(Actions)
    (四)对悬浮框alert的操作(accept,dismiss)
    (五)在网页框架上的切换(frame,defaultContent)
    (六)网页跳转确认(assert,isDisplayed)
    三、自动化功能的实现(基于TestNG)
      1、基础框架
      2、数据与编码分离的框架(excel,FeedTest)



    一、基本语句
    1、循环控制(break,continue)
    break用于结束整个循环;
    continue用于结束本次循环,以进行下一次循环。
    2、字符及字符串的比较(compareTo,equals,compareToIgnoreCase,equalsIgnoreCase)
    compareTo和compareToIgnoreCase结果返回的是int(两个字符串的第一个不同字符的ASCII差值);
    equals和equalsIgonrCase结果返回的是bool值(true、false);
    compareTo和equals区分大小写,-IgnoreCase忽略大小写。
    示例:"abc".compareTo("bac");
    "Abc".equalsIngoreCase("abc");
    3、字符的替换(replace,repalceFirst,replaceAll,regex)
    样:"Ab cdef ab".replace("ab","xy")
    replace:将前边字符串中的ab替换为xy,区分大小写;
    repalceFirst:将第一个ab替换为xy;
    replaceAll:将所有的ab都替换为xy;

    严格正则表达式:String regex="^[0-9]{4}$";表示只替换是且仅是连续4位的数字;
    非严格的正则表达式:String regex="[0-9]{4}",只要存在的位连续的4位数字就进行替换;
    例:"1324adb568872".repalce(regex,"xx"); //此表达式如果regex是严格的就只会替换1324,如果是非严格的就会替换1324和5688.

    4、字符串的连接("+",append)
    "+"可以将多个字符串连接,append是有字符串的末尾追加,不过从运行速度来说,append比“+”的效率高,速度快。
    例:String str1="abc"+"bcd";
    String str2="abc".append("bcd");
    5、字符串的截取和分割(substring,split)
    样:"abcdefg".substring(4);//结果:"efg",删截掉了前四个字符;
    "abcdef".substring(0,4);//截取两个位置之间的字符;
    "abd fghk".split(" ");//在空格处分割字段;?????

    6、文件夹的创建与删除(mkdirs,delete)
    String str="D:/practice1/practice2";
    File file=new File(str);
    file.mkdirs();//文件夹的创建;
    file.delete();//删除;
    String str2="D:/practice1/practice2/11.txt";
    File file2=new File(str2);
    file2.createNewFile();//创建文件。
    file2.delete();//删除

    7、文件的读写(BufferedWrite,BufferedReader)
    BufferedWriter bw=new BufferedWriter(new FileWriter("filename"));//创建写入流。读取流的创建也一样,只是换用BufferedReader()。
    bw.write("What a sunny day!");
    bw.newLine();//换行
    bw.close();//一般用完文件都要关闭。
    判断文件是否存在:String str; (str=br.readLine())!=null;

    8、系统时间的获取( ((Calendar.getInstance()).get(Calendar.YEAR) )
    Calendar cal=Calender.getInstance();
    int year=cal.get(Calendar.YEAR);//当前年份
    int month=cal.get(Calendar.MONTH)+1;//系统对月的统计是从0开始的,故要+1
    int date=cal.get(Calendar.DATE)//日
    int day1=cal.get(Calendar.DAY_OF_WEEK)//一周中的第几天
    int day2=cal.get(Calendar.DAY_OF_MONTH)//一月中的第几天
    int day3=cal.get(Calendar.DAY_OF_YEAR)//一年中的第几天

    9、时间格式的转换(SimpleDateFormat)
    long time=System.currentTimeMillis();//当前系统日期
    String str1="MM/dd/yyyy";
    String str2="yyyy/MM/dd";
    String str3="yyyy/MM/dd HH:mm:ss";
    String str4="yyyy/MM/dd HH:mm:SS";
    String str5="yyyy/MM/dd HH:mm:s";//时间格式,H-24小时制,s-秒,S-毫秒
    SimpleDateFormat form1=new SimpleDateFormat(str)
    System.out.println(form1.format(time));//格式转换



    二、浏览器自动化操作(基于maven包)
    (一)对浏览器的基本操作
    System.setProperty("webdriver","C:\PromgramFiles浏览器物理位置firefox.exe");//设置默认浏览器。
    WebDriver driver=new FirefoxDriver();//打开浏览器
    driver.manage().window().maximize();//最大化
    driver.manage().timeOuts().ImplicitlyWait(5,TimeUnit.SECONDS);智能等待5秒
    Thread.sleep(5000);//等待5秒
    driver.get("http://网址");//打开网页
    driver.close();//关闭当前浏览器
    driver.quit();//关闭浏览器进程

    (二)网页元素的定位
    就火狐浏览器而言,大部分元素都可以用插件firebug找到,只有css类型需要用seleniunIDE进行查阅。
    1、name定位
    driver.findElement(By.name("xxx"));
    2、class定位
    driver.findElement(By.className("xxx"));
    3、css定位
    driver.findElement(By.cssSelector("input[type='button']));
    4、ID定位
    driver.findElement(By.id("xxx"));
    5、tagName定位
    driver.findElement(By.tagName("xxx"));
    6、link,partialLink定位(a)
    driver.findElenment(By.linkText("xxx"));//link需要链接后边的全部内容来进行定位,而partialLink只需要写入一部分就能进行查找定位。
    7、xpath定位
    driver.findElememt(By.xpath("/html/body/每一层路径/目标"));
    driver.findElement(By.xpath("//input[@value='值']");
    driver.findElement(By.xpath("//img[@alt='图片名']");//图片名为在网页上,按住alt并将鼠标移动到图上时所显示的名称。
    driver.findElement(By.xpath("//img[contains(@alt,'xxx')]");
    driver.findElement(By.xpath("//a[text()='xxx']");//对于链接的通过xpath定位不需要用@,而用示例所给格式。

    (三)对鼠标的悬停操作(Actions)
    Actions action=new Actions(driver);//建立对于浏览器的鼠标动作
    action.moveToElement("位置").perform();//移动到某一位置,perform()用于确认。
    action.clickAndHold("位置”).perform();//按住并移动
    action.release("位置").perform();释放鼠标


    (四)对悬浮框alert的操作(accept,dismiss)
    driver.switchTo().alert().sendKeys("xxx");//转到悬浮框并写入
    driver.swithcTo().alert().accept();//确认
    driver.swithcTo().alert().dismiss();//取消


    (五)在网页框架上的切换(frame,defaultContent)
    driver.switchTo().frame("xxx");
    driver.switchTo().defaultContent();//从一个框架向另一个框架移动一般都需要先跳转回这个主框defautlContent()


    (六)网页跳转确认(assert,isDisplayed)
    Assert.assertTrue(driver.findElement(By.name("xx")).isDisplayed();//确认跳转后页面的某一元素的出现。

    三、自动化功能的实现(基于TestNG)
    1、基础框架
    package testNG
    public class test{
    @Test(dataProvider="dp")//功能的主要实现结构
    public void mainn(String a,int b,Stringc){
    }
    @DataProvider(name="dp")//数据提供者
    public Object[][] dp(){
    Object[][] abc={ {"ab","5","bc"},{"bc","3","xx"}};
      return abc;
    }
    @Test(dependsOnMethods="mainn")//接着mainn之后运行
    public void add{
    }
    }

    2、数据与编码分离的框架(excel,FeedTest)
    package testNG;
    public class test extends FeedTest //extends FeedTest为追加
    {
    @Test(dataProvider="feeder")//feeder为固定用语
    @Souce("data/1.xls")//data为eclips内一个文件夹路径,1.xls为excel源文件,需要将它复制到eclips中此路径下才能生效。
    public void mainn(String a,String b,String c,int x){
    }

  • 相关阅读:
    疫情环境下的网络学习笔记 python 5.8 数据库入门终章
    疫情环境下的网络学习笔记 python 5.7 navicat数据库,例题,sql注入
    疫情环境下的网络学习笔记 python 5.6 暂时看看
    疫情环境下的网络学习笔记 python 5.5 MYSql 表关系,外键
    疫情环境下的网络学习笔记 python 5.4 数据库基础
    疫情环境下的网络学习笔记 python 4.30 初识数据库
    疫情环境下的网络学习笔记 python 4.29 网络小项目
    XJOI 夏令营501-511测试11 游戏
    XJOI 夏令营501-511测试11 统计方案
    CF1197D Yet Another Subarray Problem
  • 原文地址:https://www.cnblogs.com/qianjinyan/p/9493596.html
Copyright © 2011-2022 走看看