selenium(java)教程学习(附带全部代码)
java web⾃动化
java+selenium+testng+Jenkins
想要使⽤Selenium实现web⾃动化测试,主要需要的东西。
1.需要安装jdk,配置jdk,(selenium3需要jdk1.8以上)
2. 安装eclipse(编写⼯具)
3. 安装webdrver(集成selenium api jar⽂件)
下载好以后
步骤:
1.创建⼀个java ⼯程 java project
2.在⼯程下创建⼀个lib⽂件夹
3.将下载的webdriver下的jar⽂件及lib下的jar⽂件复制到新建的lib⽂件夹下
4.选中lib下的所有jar–build path–add build to path
浏览器驱动
这个不能少,不然驱动不了浏览器,我⽤的是chrome浏览器
安装浏览器和对应的驱动 (浏览器的版本要和驱动版本⼀致)
配置好以后就可以写代码了
第⼀个⾃动化脚本
public static void main(String[] args)throws InterruptedException {
//设置驱动
System.setProperty("webdriver.chrome.driver","D:\\"); //创建ChromeDriver对象
ChromeDriver driver =new ChromeDriver();
//创建窗⼝最⼤化
driver.manage().window().maximize();
//打开⽹页
<("www.baidu");
然后你就成功的打开了
⾃动化就是这么简单,要想学好⾃动化必须有代码能⼒,还要动⼿敲。
你要牢记少年
元素定位
public static void main(String[] args){
//配置驱动
System.setProperty("webdriver.chrome.driver","D:\\"); //创建ChromeDriver对象
ChromeDriver driver =new ChromeDriver();
//窗⼝最⼤化
driver.manage().window().maximize();
//打开⽹站
<("www.baidu");
常⽤⽤的
1.ID定位,因为id是唯⼀的能⽤id不⽤其他
//⽤ID定位输⼊框
WebElement id = driver.findElement(By.id("kw"));
//输⼊Python
id.sendKeys("python");
//⽤ID定位
WebElement ById = driver.findElementById("su");
//点击百度⼀下
ById.click();
2.name定位
//⽤name定位输⼊框
WebElement Name = driver.findElementByName("wd");
//输⼊奇艺科技
Name.sendKeys("⼩强");
//强制等待
Thread.sleep(1000);
//⽤class定位元素
driver.findElementByClassName("s_btn").click();
//关闭⽹页
driver.close();
3.class定位
//className定位输⼊框
WebElement name = driver.findElementByClassName("s_ipt"); //输⼊吾爱破解
name.sendKeys("吾爱破解");
//定位点击按钮
driver.findElementByClassName("s_btn").click();
//关闭⽹页
driver.close();
4.超链接定位
//⽤linkText等位超链接
WebElement xinwen= driver.findElementByLinkText("新闻");
//点击新闻
xinwen.click();
//设置强⾏等待时间
Thread.sleep(3000);
//关闭⽹页
driver.close();
5.部分超链接
<("www.baidu");
/
/⽤partialLinkText 定位部分超链接
WebElement tieba = driver.findElementByPartialLinkText("贴"); //点击贴吧
tieba.click();
//设置强制等待
Thread.sleep(3000);
//关闭⽹页
driver.close();
6.css定位
层叠样式表(#代表id属性,"."代表class属性)
通过id属性元素,语法:E#idName,E代表某个元素driver.findElementByCssSelector("#kw");
通过class属性元素,语法:E.className,E代表某个元素
driver.findElementByCssSelector("input.s_ipt");
PS:class⾥⾯有空格,我们⽤“.”来代替空格,形如:bg s_btn
driver.findElementByCssSelector("input.bg.s_btn");
7.xpash定位
//⽤xpash等位输⼊框
driver.findElementByXPath("//*[@id='kw']");
定位到元素–右键–copy–Copy Xpash
对元素操作⽅法
sendKeys(" ") 输⼊数据
clear(); 清空输⼊框
click(); 对元素进⾏点击
getText() 获取元素⽂本的值
getAttribut(“属性名”) 获取某个属性的值python转java代码
操作⽹页元素 下拉菜单
选中下拉菜单有三种⽅式
1.selectByIndex: 通过索引选中某个条⽬
2.selectByVisibleText: 通过下拉列表中选项的可见⽂本选中某个条⽬
3.selectByValue: 通过下拉列表某个选项的value值,选中该选项
PS:html标签⾥⾯⼀定是select才可以这样使⽤
//定位下拉框
WebElement xiala = driver.findElementById("cardType");
Select select =new Select(xiala);
select.selectByIndex(3);
Thread.sleep(1000);
select.selectByValue("C");
Thread.sleep(1000);
select.selectByVisibleText("中国居民⾝份证");
浏览器多窗⼝间切换的问题
Selenium为每⼀个窗⼝提供了⼀个唯⼀的id号
这个id号在selenium中被称为window handle(窗⼝句柄,⼿柄)
通过这个id号来实现多窗⼝间的切换
获取当前窗⼝的id号使⽤WindowHandle();(获取主窗⼝的句柄)获取所有打开窗⼝的id号使⽤WindowHandles();
窗⼝切换使⽤driver.switchTo().window(winHandle);
判断逻辑:
获取第⼀个窗⼝的id号
获取所有窗⼝的id号
如果不是第⼀个窗⼝,说明是新窗⼝,切换到新窗⼝
driver.switchTo().window(winHandle)
Selenium中的多个窗⼝切换(3个及以上的窗⼝切换)
获取第⼀百度窗⼝⼿柄
//获取百度窗⼝⼿柄
String baiduHandle = WindowHandle();
窗⼝切换及判断
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论