请选择 进入手机版 | 继续访问电脑版
搜索
房产
装修
汽车
婚嫁
健康
理财
旅游
美食
跳蚤
二手房
租房
招聘
二手车
教育
茶座
我要买房
买东西
装修家居
交友
职场
生活
网购
亲子
情感
龙城车友
找美食
谈婚论嫁
美女
兴趣
八卦
宠物
手机

Java+Selenium自动化测试(二)

[复制链接]
查看: 62|回复: 0

2万

主题

2万

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
70836
发表于 2020-1-17 02:00 | 显示全部楼层 |阅读模式
Java+Selenium+TestNG自动化测试框架整合
1、简化代码
封装一个定位元素的类,典范为ElementLocation
  1. package com.test;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import java.util.concurrent.TimeUnit;/** * 每次定位元素都挪用类似的方式 * 将每个方式都封装起来仅供挪用 */public class ElementLocation {    /**     * 经过id定位元素     * @param id     * @param elementId     */    public  void finElementByID(String id, String elementId, WebDriver driver){         driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);         driver.findElement(By.ById.id(id)).sendKeys(elementId);    }    /**     * 经过xpath定位元素     * @param xpath     * @param text     */    public void findElementByXpath(String xpath,String text,WebDriver driver){        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);        driver.findElement(By.ByXPath.xpath(xpath)).sendKeys(text);    }
  2.     /**     * 先扫除文本框内容再经过ID定位元素     * @param id     * @param text     * @param text     */    public void findElementByIdClearSendkeys(String id,String text,WebDriver driver){        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);        driver.findElement(By.ById.id(id)).clear();        driver.findElement(By.ById.id(id)).sendKeys(text);    }    /**     * 先扫除文本框内容再经过xpath定位元素     * @param xpath     * @param text     */    public  void findElementByXpathClearSendkeys(String xpath,String text,WebDriver driver){        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);        driver.findElement(By.ByXPath.xpath(xpath)).clear();        driver.findElement(By.ByXPath.xpath(xpath)).sendKeys(text);    }    /**     * 先扫除文本框内容再经过cssSelector定位元素     * @param cssSelector     * @param text     */    public  void findElementByCssClearSendkeys(String cssSelector,String text,WebDriver driver){        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);        driver.findElement(By.ByCssSelector.cssSelector(cssSelector)).clear();        driver.findElement(By.ByCssSelector.cssSelector(cssSelector)).sendKeys(text);    }    /**     * cssSelector点击事变     * @param cssSelector     */    public void findElementByCssClick(String cssSelector,WebDriver driver){        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);        driver.findElement(By.ByCssSelector.cssSelector(cssSelector)).click();    }    /**     * xpath点击事变     * @param xpath     */    public void findElementByXpathClick(String xpath,WebDriver driver){        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);        driver.findElement(By.ByXPath.xpath(xpath)).click();    }}
复制代码
2、整合TestNG测试框架
  1、Java整合TestNG这里用的jar包,先下载一个jar包;
  2、将jar包导入工程里面(这里导入的是IDEA)
整合部分以登录为例:
  1. package com.test;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;import org.openqa.selenium.support.ui.WebDriverWait;import org.testng.annotations.AfterMethod;import org.testng.annotations.BeforeMethod;import org.testng.annotations.Test;public class Login  {    WebDriver driver = null;    //挪用上面定位元素的类    ElementLocation elementLocation =  new ElementLocation();    //在全数方式运转之前运转    @BeforeMethod    public void before(){        System.setProperty("webdriver.chrome.driver", "E:\\selenium\\chromedriver.exe");        driver = new ChromeDriver();        String url = "";        driver.manage().window().maximize();        driver.get(url);    }    /**     * 定位登录界面元素     * 1.输入切确手机号码     * 2.输入切确密码     * 3.登录乐成     */    @Test    public void test_login1(){        elementLocation.findElementByCssClearSendkeys("input[type='text']","11115232323",driver);        elementLocation.findElementByCssClearSendkeys("input[type='password']","111111",driver);        elementLocation.findElementByCssClick("button[type='button']",driver);        System.out.println("登录乐成,跳转到首页");    }//在全数方式运转完以后运转    @AfterMethod    public void after(){        try{            Thread thread = new Thread();            thread.sleep(5000);
  2.         driver.quit();         }catch (InterruptedException e){           e.printStackTrace();        }           }}
复制代码
注:
1、供给挪用定位元素的方式,还是有些复杂,在前面继续用的时候再举行优化。
2、整合TestNG  
  1、选用jar包比力方便,现在很多都不用jar包文件间接整合maven中,前面继续优化。
  2、TestNG供给了很多注解,现在只用了三个。
  @BeforeMethod:在运转其他方式之前运转该方式,仅运转一次
  @AfterMethod:在运转完其他方式以后运转该方式,仅运转一次
  @Test:运转当前方法
 
  

免责声明:假如加害了您的权益,请联系站长,我们会实时删除侵权内容,感谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2006-2014 淄博新闻网-淄博日报 淄博晚报 淄博财经新报 掌中淄博 淄博专业新闻资讯发布网站 版权所有 法律顾问:高律师 客服电话:0791-88289918
技术支持:迪恩网络科技公司  Powered by Discuz! X3.2
快速回复 返回顶部 返回列表