Java+Selenium⾃动化测试学习(⼀)搭建项⽬环境基本流程
1、如果没安装jdk先安装jdk,并配置好环境变量;
2、如果没有安装⼯具,安装⼯具(Eclipse、IDEA)都可以;
3、安装好之后将⼯具打开,就开始搭建项⽬环境;
4、在Eclipse中创建⼀个项⽬;
5、将下载的将selenium-java包导⼊到项⽬中;
6、环境搭建完成,可以写⼀个简单的流程测试⼀下,如下⾯代码,先测试是否可以打开浏览器。
⾃动化测试基本流程
1、设置chromedriver的地址System.setProperty();
2、创建⼀个默认浏览器ChromeDriver driver = new ChromeDriver();
3、设置窗⼝属性(⾃定义,⽐如:设置窗⼝⼤⼩);
4、在浏览器窗⼝加载新的⽹页(url);
5、设置等待⽅式⼀般是显⽰等待和隐式等待两种;
6、定位元素;
7、退出浏览器。
package testLogin;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import urrent.TimeUnit;
public class LoginTest {
public static void main(String[] args) throws Exception {
/
/设置chromedriver的地址
System.setProperty("webdriver.chrome.driver", "E:\\selenium\\");
//创建⼀个默认的浏览器
WebDriver driver = new ChromeDriver();
driver.manage().window().maximize();//窗⼝最⼤化
String url = "";//写⼊测试的地址
<(url);
Thread.sleep(1000);
//隐式等待,全局变量对页⾯中所有元素设置加载时间,总共等待10秒,如果10秒后,元素还不存在,就会抛出异常
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
//定位登录界⾯元素
//如果⽂本框中之前有值,先清空元素之前的值
//⼿机号码
driver.findElement(By.ByCssSelector.cssSelector("input[type=\"text\"]")).clear();
driver.findElement(By.ByCssSelector.cssSelector("input[type=\"text\"]")).sendKeys("152********");
Thread.sleep(1000);
//密码
driver.findElement(By.ByCssSelector.cssSelector("input[type=\"password\"]")).clear();
driver.findElement(By.ByCssSelector.cssSelector("input[type=\"password\"]")).sendKeys("111111");
Thread.sleep(1000);
//跳转页⾯要⽤click,submit不能跳转只能提交,如果要⽤submit,后⾯还得在写⼀边click
driver.findElement(By.ByCssSelector.cssSelector("button[type='button']")).click();
Thread.sleep(1000);
System.out.println("登录成功,跳转到⾸页");
//设置⽤户信息,定位元素
//姓名
driver.findElement(By.ByXPath.xpath("//div[contains(@class,\"is-required\")][1]/div/div/input")).clear();
driver.findElement(By.ByXPath.xpath("//div[contains(@class,\"is-required\")][1]/div/div/input")).sendKeys("haha");
Thread.sleep(1000);
//性别,单选框是个点击事件,注意:这个路径不是input标签⾥⾯的radio,⼀般都是定位input⾥⾯的radio
driver.findElement(By.ByXPath.xpath("//label[@role=\"radio\"][1]")).click();
/**
* ⽣⽇
* 定位⽇期控件:
* 1.⽇期控件中有readonly,通过js去掉readonly属性
* 2.定位元素,⼿动输⼊⽇期
* 3.这⾥多了⼀个属性disabled,都要去掉
*/
//通过js获取属性信息
String jsScript = "ElementsByClassName('el-date-editor')[0].getElementsByTagName('input')[0].removeAttribute('readonly')"; String jsScript1 = "ElementsByClassName('el-date-editor')[0].getElementsByTagName('input')[0].removeAttribute('disabled')";
//执⾏js
((ChromeDriver) driver).executeScript(jsScript);
((ChromeDriver) driver).executeScript(jsScript1);
driver.findElement(By.ByXPath.xpath("//div[contains(@class,'el-date-editor')]/input")).clear();
driver.findElement(By.ByXPath.xpath("//div[contains(@class,'el-date-editor')]/input")).sendKeys("2020-01-13");
//
Thread.sleep(3000);
driver.findElement(By.ByXPath.xpath("//div[contains(@class,'is-required')][3]/div/div/input")).clear();
driver.findElement(By.ByXPath.xpath("//div[contains(@class,'is-required')][3]/div/div/input")).sendKeys("12522222222");
Thread.sleep(3000);
/**
* 下拉框
* 注意:这⾥的下拉框不是select类型,⽽是⽤ul和li模拟的下拉框
* 1、在定位下拉框时先输⼊框点击
* 2、在定位下拉框点击
*/
driver.findElement(By.ByXPath.xpath("(//div[contains(@class,'el-select')]/div/input)[1]")).click();
driver.findElement(By.ByXPath.xpath("//*[@class=\"el-select-dropdown__item\"][1]")).click();
Thread.sleep(3000);
driver.findElement(By.ByXPath.xpath("(//button[@type='button'])[1]")).click();
System.out.println("基础信息设置完成");
driver.quit();//退出浏览器
}
}
注:
1、如果双引号中还有双引号,可以⾃动转义,或者加单引号。
java环境变量自动配置 1、加单引号:"//button[@type='button'])[1]"
2、转义:"//div[contains(@class,\"is-required\"
2、三种等待⽅式。
3、不是select类型下拉框的定位⽅式(查看下拉框类型),我们的是ur\li写的下拉框例如:
1、先定位输⼊框click,然后弹出下拉框;
2、再定位下拉框中的元素click,最后的值赋值到输⼊框中
4、点击和提交:
1、submit提交表单事件
2、click响应事件。
例如:在登录时我⽤submit提交,未跳转到⾸页。使⽤click可以。
5、定位⽇期控件:⽇期控件⼀般都会有readonly或disable属性,,然后在定位元素输⼊⽇期。
1、先⽤js代码移除属性ElementsByClassName("")[0].removeAttribute('readonly')
2、然后在定位到元素使⽤sendkeys()⽅法输⼊⽇期
6、两种退出⽅式:
1、close()关闭当前窗⼝,如果是当前打开的最后⼀个窗⼝,则退出浏览器
2、quit()关闭所有关联的窗⼝
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论