一个简单的 Web自动化 演示
操作的大致流程就是这样的,那么自动化脚本该如何去写呢?
1、定位元素的方法 - 只介绍两种最常使用的
2、xpath 选择器 - 了解
2、元素的操作
5、getText 用于获取元素的文本信息
另外,为什么我们是使用的 String 类型 来接收 getText 的 返回值呢?
还有一个点,这个百度一下按钮的值是获取不到的
我们来分析一下原因:
那么,我们如何获取到 标签的属性值呢?
使用 getAttribute 方法通过指定属性名称,来获取指定的属性值。
3、等待
3.1、强制等待
强制等待的优点 && 缺点
那么,存不存在一种更高效的方法?
在获取(定位)一个元素的时候,如何没有获取到,进行等待,一旦元素加载完成,立即获取。
也就是说:等待的时间不再是固定的,而是自适应。
下面,我们就看看 “隐式等待”。
3.2、隐式等待
隐式等待的优缺点
3.3、显示等待
显示等待的优缺点:
注意事项
4、打印信息
1、打印网页标题
下面我们就来书写 messagePrint 方法。
2、打印当前网页的链接(网址)
5、窗口
窗口切换
窗口大小的设置
窗口 置顶 / 置底 - 了解
操作浏览器的前进、后退
操作弹窗
我就网上随便找了几个图,我就说一下思路。
模拟 鼠标,键盘操作
键盘的操作,我们已经用过了,就是 sendKeys 方法
选择框
文件的上传
此时,我们来思考一件事:能不能定位 系统框中的元素,并进行操作?
selenium 不能直接操作系统框。
但是,这个操作是可以模拟实现。【sendKeys方法 输入 上传文件路径(包含文件名称)】
8、屏幕截图
如果我不告诉你:获取不到元素的原因,你能推导出原因吗?
这个时候就可以使用屏幕截图来解决。
selenium 提供了相应的(屏幕截图)方法:driver.getScreenshotAs(OutputType.返回的文件类型);
在使用之间,我们需要导入一个依赖
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
代码如下:
注意!我们是没有使用等待的,所以当前这个方法是一定会报异常的,会得到一下截图