当前位置: 首页 > news >正文

Selenium自动化操作

1、跳转页面播放视频

我们以b站为例,测试是否可以点击模块进行播放视频

//点击页面看是否视频正常播放public void turn() throws InterruptedException {driver.findElement(By.cssSelector("#i_cecream > div.bili-feed4 > main > div.feed2 > div > div.container.is-version8 > div:nth-child(2) > div > div > a > div > div.bili-video-card__image--wrap > picture > img")).click();Thread.sleep(3000);driver.quit();}

2、多次跳转页面

2.1  获得句柄,点击模块

//获得当前页面句柄String windowHandle = driver.getWindowHandle();driver.findElement(By.cssSelector("#s-top-left > a:nth-child(7)")).click();Thread.sleep(2000);

2.2  获取全部句柄,切换窗口

 //切换页面获得全部句柄System.out.println(driver.getWindowHandles());Set<String> windowHandles = driver.getWindowHandles();for (String s : windowHandles) {if(s != windowHandle){//如果句柄不同就代表切页面了,所以要进行窗口切换driver.switchTo().window(s);}}

2.3 切换之后再次关闭当前窗口,返回主页面并查看当前所有句柄

//切换之后再次关闭当前窗口,返回主页面driver.close();//打印当前的所有句柄查看有什么System.out.println(driver.getWindowHandles());

2.4 切换回原始窗口,进行搜索,最后关闭浏览器

//切换回原始的窗口句柄driver.switchTo().window(windowHandle);//进行搜索,输入软件测试driver.findElement(By.cssSelector("#kw")).sendKeys("软件测试");//点击搜索键driver.findElement(By.cssSelector("#su")).click();//停止两秒Thread.sleep(2000);//关闭全部页面driver.quit()

2.5 完整代码如下

//多次切换页面public void Switch() throws InterruptedException {//获得当前页面句柄String windowHandle = driver.getWindowHandle();driver.findElement(By.cssSelector("#s-top-left > a:nth-child(7)")).click();Thread.sleep(2000);//切换页面获得全部句柄System.out.println(driver.getWindowHandles());Set<String> windowHandles = driver.getWindowHandles();for (String s : windowHandles) {if(s != windowHandle){//如果句柄不同就代表切页面了,所以要进行窗口切换driver.switchTo().window(s);}}//切换之后再次关闭当前窗口,返回主页面driver.close();//打印当前的所有句柄查看有什么System.out.println(driver.getWindowHandles());//切换回原始的窗口句柄driver.switchTo().window(windowHandle);//进行搜索,输入软件测试driver.findElement(By.cssSelector("#kw")).sendKeys("软件测试");//点击搜索键driver.findElement(By.cssSelector("#su")).click();//停止两秒Thread.sleep(2000);//关闭全部页面driver.quit();}

http://www.xdnf.cn/news/936055.html

相关文章:

  • Java中双端队列的多种实现类详解
  • 力扣面试150题--课程表
  • LabVIEW多道心电记录仪
  • 【靶场】XXE-Lab xxe漏洞
  • Java严格模式withResolverStyle解析日期错误及解决方案
  • PLC入门【1】PLC的简单介绍(教学软件:FX-TRN-BEG-C)
  • Spring Boot中Bean注入方式对比与最佳实践
  • AUTOSAR实战教程--开放式通用DoIP刷写工具OpenOTA开发计划
  • 分类场景数据集大全「包含数据标注+训练脚本」 (持续原地更新)
  • MCP Tool模块详解
  • 听写流程自动化实践,轻量级教育辅助
  • 【原创】基于视觉模型+FFmpeg+MoviePy实现短视频自动化二次编辑+多赛道
  • Unity中如何播放视频
  • 数据结构——F/图
  • 一个一键生成知识讲解类教育视频的ai工具
  • 从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(十一)
  • 【MySQL系列】MySQL 导出表数据到文件
  • 内存分配基础:修改SCT文件的简单例子
  • JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
  • 【Ftrace 专栏】Ftrace 基础使用
  • LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
  • AI 大模型统一集成|Spring AI + DeepSeek 实战接入指南
  • 【教学类-53-02】20250607自助餐餐盘教学版(配餐+自助餐)
  • Windows下用CMake编译DCMTK及配置测试
  • DeepSeek R1 V2 深度探索:开源AI编码新利器,效能与创意并进
  • Argo CD 入门 - 安装与第一个应用的声明式同步
  • IDEA为何一直无法使用超过4g内存
  • 文献阅读:Exploring Autoencoder-based Error-bounded Compression for Scientific Data
  • LSTM-SVM多变量时序预测(Matlab完整源码和数据)
  • VB调用CryReport指南方案