【web自动化】selenium的使用(二)

目录

复选框操作

示例:批量操作对象,比如将页面上所有的checkbox 都勾上

方法:先用标签选择器选择页面上所有的input,然后从中过滤出属性type是checkbox的 并勾选

java 复制代码
List<WebElement> webElements=webDriver.findElements(By.cssSelector("input"));
for(int i=0;i<webElements.size();i++)
{     
    if(webElements.get(i).getAttribute("type").equals("checkbox"))
    {
        webElements.get(i).click();
    }
}

多层框架操作

对于一个web 应用,经常会出现框架(frame) 或窗口(window)的应用,这也就给我们的定位带来了一定的困难,所以我们需要先切换到要定位的元素的框架中去。

方法:

1.定位外层框架 :首先,你需要定位到外层框架。使用driver.switchTo().frame()方法可以切换到框架上下文。你可以通过框架的ID、名称或索引来定位。

2.定位内层框架 :如果页面中有多层嵌套的框架,你可能需要先定位到外层框架,然后再定位到内层框架。同样使用driver.switchTo().frame()方法切换到内层框架上下文。

3.定位框架内的元素:在切换到正确的框架上下文后,你就可以像定位普通元素一样来定位框架内的元素。使用findElement()或其他定位方法来找到你需要的元素。

java 复制代码
// 切换到外层框架
driver.switchTo().frame("outerFrame");

// 切换到内层框架
driver.switchTo().frame("innerFrame");

// 定位框架内的元素并操作
WebElement element = driver.findElement(By.id("elementId"));
element.click();

// 退出内层框架
driver.switchTo().parentFrame();

// 退出外层框架,回到默认页面上下文
driver.switchTo().defaultContent();

下拉框操作

首先要定位到下拉框的元素,然后选择下拉列表中的选项进行点击操

作。通常由两种方法来定位下拉列表,均需创建Select 类

方法一:通过索引(从0开始计数)

方法二:通过下拉框取值

java 复制代码
WebElement webElement=webDriver.findElement(By.cssSelector("#ShippingMethod"));
Select select=new Select(webElement);
 //两种下拉框选择方式
select.selectByIndex(2); //根据按钮选择
select.selectByValue("11.61");

弹窗操作

当浏览器中需要对弹窗进行操作时,通常运用下面几个API

切换到弹窗:switchTo().alert()

确定:switchTo()...alert().accept()

取消:switchTo()...alert().dismiss()

向弹窗中输入文本:sendKeys()

java 复制代码
向上方弹窗中输入hello并确认
webdriver.switchTo().alert().sendKeys("hello");
webdriver.switchTo().alert().accept();
相关推荐
乐橙开放平台11 小时前
从「多套客户端」到一套开放能力:乐橙视频监控能力复盘
笔记·物联网·自动化·音视频·智能家居
志栋智能16 小时前
集成是关键:让巡检超自动化融入现有工具链
运维·服务器·数据库·架构·自动化
AI智能从业者16 小时前
数码家电客服机器人怎么选?客户问参数问题机器人能不能接住
运维·人工智能·自动化
骑着蜗牛撵大象32716 小时前
微信远程指挥电脑:用Hermes Agent构建本地AI执行引擎实战指南
机器人·自动化·es
Liaiyang6617 小时前
# 自研 AST 容错初筛工具:横向评测 Django、PyTorch、TensorFlow 三大开源 Python 框架异常收容风险
python·测试工具·自动化·开源软件·代码规范·devops·代码复审
学电子她就能回来吗18 小时前
把自然语言变成可制造 CAD:开源 SolidWorks Automation Skill 的工程化实践
人工智能·python·自动化·solidworks·mcp
iPad协议个微协议20 小时前
微信消息进入工单系统为什么需要候选层:WechatApi 接入后的服务流程设计
微信·自动化·微信开发·wechatapi·个人微信号二次开发·微信api·微信二次开发
PiaoKe___1 天前
云手机原理与 Python 自动化实战:ADB 批量控制、任务调度与落地建议
服务器·arm开发·python·自动化
千里码aicood1 天前
基于PLC与机器视觉的智能分拣控制系统设计
c++·自动化·plc
俗人六哥AI企业获客盈利系统1 天前
知识库才是AI落地的分水岭
人工智能·线性代数·矩阵·自动化