web自动化--selenium

一.了解自动化和selenium

1.什么是自动化?

自动化测试能够代替一部分手工测试,能够提高测试效率。

随着功能的增加,版本越来越多,版本回归的压力越来越大,仅仅通过手工回归所有版本是不现实的,需要借助自动化回归。

2.为什么选择selenium作为web自动化工具?

1)支持多浏览器

2)支持多系统(Linux,IOS,Windows等)

3)支持多种语言 (Java,C++,python等)

4)selenium有很多底层API

5)开源免费

3.什么是驱动?什么的驱动的基本原理?

需要驱动才能打开浏览器。人工测试时,人工手动驱动来打开浏览器;自动化测试时,代码不能直接打开浏览器,需要借助驱动程序打开浏览器。

但是,代码可以驱使驱动打开浏览器。

驱动原理:

二.selenium的基础语法

1.元素的定位

定位页面元素:driver.findElement()

抽象类By中的方法:By.cssSelector(); By.xpath();By.id()等 

定位元素的方法:

css或者xpath等复制时按F12后点击页面对应位置,在代码段中选择相应选择器copy即可

css选择器 

xpath选择器

2.元素的操作

点击:click ()   

提交:submit()

(可以click但不一定可以submit,但是页面中的任何元素都可以click。)

模拟按键输入:sendKeys()

清除对象输入的文本内容:clear()

获取文本:getText()

获取属性值:getAttribute()

3.等待

代码执行效率比较快,而前端页面渲染比较慢,可能代码已经执行到下一步,前端却还没有渲染完成,从而导致元素找不到。

强制等待:Thread.sleep(3000);

    等待时间需要进行估计。

    优点:写法简单,适合调试使用。

    缺点:使用自动化测试就是为了提高调试效率,但是强制等待需要等待固定的时间,那么调试效率就会大大减小。

隐式等待:driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(3));

    隐式等待作用在driver争个生命周期。

    在规定时间范围内,轮询等待元素出现之后就结束等待,如果在规定范围内,元素都没有出现,就会抛出noSuchElement()异常。

    优点:节约了大量等待时间,元素渲染完成就会执行下一步,提高了效率。

    缺点:需要等待所有的元素都渲染完毕才会执行下一步,仍然会有时间的浪费。

显式等待:WebDriverWait(driver,Duration.ofSeconds(3));

    等待特定元素进行测试。第一个对象表示等待对象,第二个对象表示强制等待时间。

   优点:强制等待一个元素,大大降低了等待全部元素的时间。

   缺点:写法复杂。

4.信息打印

1)打印标题 getTitle()

2)打印当前链接 getCurrentUrl()

5.窗口

1)获取当前页面的句柄 getWindowHandle()

2)获取当前所有页面的句柄 getWindowHandles()

特别地:(本次测试用例为https:\\baidu.com\下进行)

 由上述可知,在进入百度页面后,无论操作与否打印的句柄都为百度页。要想打印打开的所有页面的句柄时,需要使用getWindowHandles()。

注:跳转页面时选择在everyWindows中挑选所需要的页面

3)跳转页面 switchTo().window(window)

 4)窗口大小设置

最大化 driver.manage().window().maximize();

最小化 driver.manage().window().minimize();

设置指定尺寸 driver.manage().window().setSize(new Dimension(1000,800));

6.导航

1)前进 driver.navigate().forward();

2)后退 driver.navigate().back();

7.弹窗

找到弹窗关闭按钮所在位置,然后点击即可。

1)警告弹窗 不能找到关闭位置时 

切换到警告弹窗 Alert alert = driver.switchTo().alert();
点击弹窗上确认按钮 alert.accept();

点击弹窗上取消按钮 alert.dismiss();

2)提示弹窗 需要输入内容

切换到输入弹窗 Alert alert = driver.switchTo().alert();

输入内容 alert.sendKeys();

8.鼠标,键盘操作

找到对应位置,然后点击。

1)鼠标操作

移动到指定位置  使用Actions接口

perfrom() 表示演示。 

2)键盘操作 

移动到指定位置

9.选择框

1)直接通过元素定位

2)使用Select接口   

索引selectByIndex()是从0开始计数

通过value值selectByValue()

通过可见文本值selectByVisibleText()

 10.文件上传

页面中点击文件上传会弹出系统窗口,selenium不能操作系统窗口。

通过sendKeys()方法输入需要上传文件的路径和文件名,从而达到上传的目的。 

11.屏幕截图

截屏:File srcFile = driver.getScreenshotAs(OutputType.x);

    x可以选择:FILE,BASE64,BYTES

                 

创建一个文件:File fileName = new File("./src/test/autoPic/my.png");

将截屏图片保存到新创建文件中:FileUtils.copyFile(srcFile,fileName);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值