一.等待
1.线程强制等待
Thread.sleep()
2.隐式等待
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds())
3.显式等待
WebDriverWait foo = new WebDriverWait(driver,Duration.ofSeconds(10));
foo.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector()));
4.总结
是否可以一起使用呢?
时间并不是叠加的,所以不要一起使用
2.等待方法只在当前方法有效
二.信息打印
1.打印标题
getTitle();
返回值是一个String
2.打印当前Url
getCurrentUrl()
点击了超链接之后打开了新的标签页,这对于selenium来说不知道应该展示的页面是什么
三.窗口
selenium对每一个标签页都给了唯一标识,称为句柄
1)获取当前页面的句柄
.getWindowHandle()
返回值是一个String
sulenium还是不知道是哪个只能默认第一个
2)获取所有页面地方句柄
driver.getWindowHandles()
返回值是集合()
可以用set
3.窗口的切换
3.1切换到最新页面
从所有句柄中选择想要跳转到的句柄(页面)
driver.SwitchTo.window(STRING类型)
先获取所有句柄
然后遍历,如果不是首页,就跳到当前页面
最后遍历到最后,就是最新的页面
3.2窗口大小的设置
1)最大化:driver.manage().window().maxmize();
2)最小化:driver.manage().window().minimize();
3)设置指定的尺寸:deiver.manage().window().setSize(new dimension(宽度,高度))单位是mm
四.编译脚本
driver.executeScript()
参数为js语言的字符串
可以在console直接编译
五.导航
selenium里提供了navigate接口来实现页面的导航
打开新的标签页不算
1)前进
driver.navigate().forward()
2)后退
driver.navigate().forward()\
六.弹窗
可以在前端代码里定位到普通的弹窗都可以使用driver.findElement()来定位元素
1)警告弹窗-点击弹窗的确认按钮
对于弹窗警告,就无法定位
需要 引用Alert类
Alert alert=driver.switchTo().alert()
z这一步切换到躺床上
然后点击确认
alert.accept();
2)确认弹窗+点击取消按钮
普通弹窗可以直接找到对应位置
alert.dismiss();
七.鼠标,键盘操作
selenium提供了Actions接口
1.鼠标
让鼠标移动到指定的元素上
找元素的返回值类型是webelement
需要先定义action类
调用点击方法对应的ele,ele是什么点击什么
然后调用perform演示方法 不调用就不掩饰
但是不点击
点击指定元素
actions.click(ele).perform()
2)键盘
八.选择框
selenium提供了select接口
1.根据计数
select.selectByIndex();
2.根据value属性来选择
select.selectByValue("10.69")
九.文件的打开
页面中点击文件上传会弹出来系统窗口,selenium不能够操作系统窗口
通过sendKey()方法输入我们想要上传的文件路径以及文件名,就能达到文件上传的操作
用反斜杆表示