当前位置:网站首页>selenium的常见方法及使用
selenium的常见方法及使用
2022-07-31 16:31:00 【小趴菜学java】
selenium的常用方法
ChromeDriver driver = new ChromeDriver();
1,获取当前页面的路径
String url1 = driver.getCurrentUrl();
2,获取当前页面的标题
String title1 = driver.getTitle();
3,跳转到最新的页面
//每个页面都自己的唯一句柄,所以可以通过页面的句柄,跳转到指定页面
String window = driver.getWindowHandle();//获取当前页面的句柄
Set<String> windowHandles = driver.getWindowHandles();//获取访问过页面的所有句柄
for (String handle : windowHandles) {
if (!window.equals(handle)){
System.out.println("跳转到最新打开的页面中");
driver.switchTo().window(handle);//跳转到新的页面
System.out.println("页面的句柄:" + handle);
}
}
4,窗口大小
driver.manage().window().maximize();//窗口最大化
driver.manage().window().minimize();//窗口最小化
driver.manage().window().setSize(new Dimension(800,600));//设置指定尺寸
5,selenium执行脚本
driver.executeScript("window.scroll(0,document.body.scrollTop)");
driver.executeScript("window.scroll(0,document.body.scrollHeight)");
6,导航(nacigate接口)
1),前进:driver.navigate().forword()
2),后退driver.navigate().forword()
driver.get("https://tool.lu/");
Thread.sleep(2000);
driver.findElement(By.cssSelector("#nav > div > div > ul > li:nth-child(1) > a")).click();
Thread.sleep(2000);
driver.navigate().back();//后退
Thread.sleep(2000);
driver.navigate().forward();//前进
7,弹窗(Alert接口)
1),普通弹窗的操作思路:
driver.get("网页的url");//绑定网页
WebElement element = driver.findElement(By.cssSelector("弹出弹窗的按钮的class"));
element.click();//点击按钮
WebElement element1 = driver.findElement(By.cssSelector("找到关闭弹窗的属性"));
element.click();//点击关闭弹窗
2),警告弹窗处理思路:
driver.get("网页的url");
driver.findElement(By.xpath("点击会出现警告弹窗的链接的xpath")).click();
Alert alert = driver.switchTo().alert();//获取弹窗事件
//警告弹窗的class和id无法被全段代码定位,所以点击不需要通过找到属性的xpath或这css样式
//直接接收
alert.accept();//点击确认按钮
alert.dismiss();//点击取消
3),输入弹窗处理思路:
driver.get("网页的url");
driver.findElement(By.xpath("点击会出现警告弹窗的链接的xpath")).click();
Alert alert = driver.switchTo().alert();//获取弹窗事件
//警告弹窗的class和id无法被全段代码定位,所以点击不需要通过找到属性的xpath或这css样式
//直接接收
alert.sendKeys("要输入的文本信息");//
alert.accept();//点击确认按钮
alert.dismiss();//点击取消
8,鼠标键盘操作(Actions接口)
selenuim提供actions来模仿鼠标和键盘的操作
driver.get("要测试的网页");
WebElement element = driver.findElement(By.cssSelector("想要操作的元素"));
Actions actions = new Actions(driver);//常见模拟鼠标键盘操作
actions.clickAndHold(element).perform();//将鼠标移动到需要操作的位置并保持,演示
actions.click(element).perform();//演示点击效果
actions.sendKeys("键盘的操作").perform();//从模拟键盘输入
9,模拟复选框(Select接口)
driver.get("要测试的网页");
WebElement element = driver.findElement(By.cssSelector("复选框classID"));
Select select = new Select(element);
select.selectByIndex(1);//通过索引选择列表项,索引从0开始
select.selectByValue("name");//通过value值来选择列表项
select.selectByVisibleText("列表项的文本内容");//通过可见文本来选择
10,文件的上传
selenium不能狗拉起系统的其他程序的窗口,因此可以使用sendKeys(“文件路径”)上传文件
driver.get("要测试的网页");
WebElement element = driver.findElement(By.cssSelector("上传文件的classID"));
element.sendKeys("文件路径");//selenium无法拉取系统的其他程序,采用输入文件路径的方式,上传文件
11,页面刷新
driver.get("要测试的网页");
driver.navigate().refresh();//刷新页面
12,屏幕截图
driver.get("http://www.baidu.com");
driver.findElement(By.cssSelector("#kw")).sendKeys("selenium");
driver.findElement(By.cssSelector("#su")).click();
//屏幕截图
File file = new File("./src/test/screenShut/my.png");
File screenshot = driver.getScreenshotAs(OutputType.FILE);
try {
FileUtils.copyFile(screenshot,file);
} catch (IOException e) {
e.printStackTrace();
}
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(2));
driver.findElement(By.cssSelector("#\\31 > div > div > h3 > a"));
边栏推荐
猜你喜欢
i.MX6ULL driver development | 33 - NXP original network device driver reading (LAN8720 PHY)
6-22 Vulnerability exploit - postgresql database password cracking
你辛辛苦苦写的文章可能不是你的原创
长得很怪的箱图
【Meetup预告】OpenMLDB+OneFlow:链接特征工程到模型训练,加速机器学习模型开发
Qt practical cases (54) - using transparency QPixmap design pictures
T - sne + data visualization parts of the network parameters
How C programs run 01 - the composition of ordinary executable files
js的toString方法
Design and Implementation of Compiler Based on C Language
随机推荐
flutter设置statusbar状态栏的背景颜色和 APP(AppBar)内部颜色一致方法。
MySQL基础篇【单行函数】
C language - function
复杂高维医学数据挖掘与疾病风险分类研究
阿里三面:MQ 消息丢失、重复、积压问题,如何解决?
小程序:matlab解微分方程「建议收藏」
ansible学习笔记02
多主复制下处理写冲突(4)-多主复制拓扑
动态规划(一)
Foreign media right, apple on May be true in inventory
字符串反转的实现方法总结「建议收藏」
gerrit中如何切换远程服务器
EF Core 2.2中将ORM框架生成的SQL语句输出到控制台
GP 6总体架构学习笔记
The arm button controls the flashing of the led light (embedded button experiment report)
牛客 HJ19 简单错误记录
Kubernetes common commands
牛客网刷题(三)
长得很怪的箱图
牛客 HJ16 购物单