Selenium操作对象的方法汇总(如click/clear/submit/sendKeys/getText/getSize等)

天行健,君子以自强不息;地势坤,君子以厚德载物。


每个人都有惰性,但不断学习是好好生活的根本,共勉!


文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。

文章目录

  • 1. 填充内容`sendKeys`
  • 2. 清空内容`clear`
  • 3. 提交内容`submit`
  • 4. 获取元素大小`getSize`
  • 5. 获取元素对应文本内容`getText`
  • 6. 获取元素属性`getAttribute`
  • 7. 元素是否为用户可见`isDisplayed`
  • 8. 点击按钮`click`
  • 9. 完整代码


执行程序前请先配置驱动:
关于Java selenium使用前浏览器驱动的下载和环境变量的配置
关于Selenium自动化测试工具的Java实现详情请参考文章:
如何查看页面对应的Selenium定位参数
Java实现 selenium Web自动化测试(简单篇)
Java实现 selenium Web自动化测试(详细篇)


1. 填充内容sendKeys

以百度首页搜索框为例,先定位输入框元素,然后输入文本李白诗三百

        //sendKeys-在输入框中填充文本搜索内容
        WebElement sendKeys_input = webDriver.findElement(By.id("kw"));
        sendKeys_input.sendKeys("李白诗三百");

2. 清空内容clear

清空填充的文本内容

        //clear-清空输入框中的文本内容
        WebElement clear_input = webDriver.findElement(By.id("kw"));
        clear_input.clear();

3. 提交内容submit

提交submit相当于按回车按钮
先填充再提交

        //submit-提交文本内容进行搜索,相当于回车按钮
        WebElement submit_input = webDriver.findElement(By.id("kw"));
        submit_input.sendKeys("唐诗三百");
        submit_input.submit();

4. 获取元素大小getSize

获取元素对应位置的长度和宽度即dimension size
如获取百度首页搜索框的尺寸

        //getSize-获取当前定位元素的大小,如返回输入框的大小
        WebElement getSize_input = webDriver.findElement(By.id("kw"));
        Dimension size = getSize_input.getSize();
        System.out.println("\n\n\n\n\n\n\n\n dimension size "+size+"\n\n\n\n\n\n\n\n");

控制台输出为(503, 38)
截图如下
在这里插入图片描述

5. 获取元素对应文本内容getText

根据元素位置获取其对应的文本内容,这里以百度首页搜索唐诗三百的结果页面,定位标题文本获取对应内容

        //getText-获取当前元素对应的文本内容,input对应的文本内容为空
        WebElement getText_input = webDriver.findElement(By.xpath("//div/div/div/h3"));
        String text = getText_input.getText();
        System.out.println("\n\n\n\n\n\n\n\n  text "+text+"\n\n\n\n\n\n\n\n");

控制台输出为:唐诗三百 - 古诗文
截图如下
在这里插入图片描述

6. 获取元素属性getAttribute

根据元素属性名获取对应的值,以百度首页输入框为例,获取属性名name对应的属性值

        //getAttribute-获取元素属性值
        WebElement getAttribute_input = webDriver.findElement(By.id("kw"));
        //括号中填写元素标签中的属性名,会根据此属性名获取其对应的属性值,以input标签元素中的属性名name为例获取其对应的值
        String name = getAttribute_input.getAttribute("name");
        System.out.println("\n\n\n\n\n\n\n\n  name "+name+"\n\n\n\n\n\n\n\n");

控制台输出name对应的属性值内容为wd
截图
在这里插入图片描述

7. 元素是否为用户可见isDisplayed

返回值为布尔值,用来确认该元素的内容是否对用户可见,以百度首页输入框为例

        //isDisplayed-获取该元素是否为用户可见,返回结果为布尔值
        WebElement isDisplayed_input = webDriver.findElement(By.id("kw"));
        boolean displayed = isDisplayed_input.isDisplayed();
        System.out.println("\n\n\n\n\n\n\n\n  displayed "+displayed+"\n\n\n\n\n\n\n\n");

输出结果为true,表示对用户可见
截图如下
在这里插入图片描述

8. 点击按钮click

定位元素点击,这里以百度首页的左上角文本链接中的地图为例,点击跳转到地图网页

        //click-点击对象,可以点击文本链接,可以点击按钮,可以点击复选框等,
        // 这里是接着前面的操作在百度搜索框中输入了唐诗三百后的界面中找到文本链接-地图,再点击进行测试
        WebElement click_news = webDriver.findElement(By.linkText("地图"));
        click_news.click();

9. 完整代码

ObjectControlTest.java

package com.libai.test.selenium.chrome;

import org.openqa.selenium.By;
import org.openqa.selenium.Dimension;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;

/**
 * @ClassDescription: 模拟浏览器中对象操作方法的测试
 * @JdkVersion: 1.8
 * @Author: 李白
 * @Created: 2024/5/8 11:20
 */
public class ObjectControlTest {


    public static void main(String[] args) throws InterruptedException {
        //指定驱动,第一个参数为驱动名称,不同浏览器的参数名称不一样,请根据浏览器查询到对应的浏览器参数名,第二个参数为驱动文件路径,即驱动完整文件路径
        System.setProperty("webdriver.chrome.driver", "D:\\JavaSoftWares\\Google\\driver\\chromedriver-win64\\chromedriver.exe");
        // 谷歌驱动
        ChromeOptions cops = new ChromeOptions();
        // 允许所有请求
        cops.addArguments("--remote-allow-origins=*");
        //默认设置开始打开网页时窗口最大化
        cops.addArguments("--start-maximized");
        //创建驱动对象
        WebDriver webDriver = new ChromeDriver(cops);
        // 启动需要打开的网页
        webDriver.get("https://www.baidu.com");
        //指定窗口大小--最大化
//        webDriver.manage().window().maximize();

        //操作对象的方法如下:click sendKeys clear submit text getSize getText getAttribute isDisplayed

        //sendKeys-在输入框中填充文本搜索内容
        WebElement sendKeys_input = webDriver.findElement(By.id("kw"));
        sendKeys_input.sendKeys("李白诗三百");
        //等待三秒
        Thread.sleep(3000);

        //clear-清空输入框中的文本内容
        WebElement clear_input = webDriver.findElement(By.id("kw"));
        clear_input.clear();
        //等待三秒
        Thread.sleep(3000);

        //submit-提交文本内容进行搜索,相当于回车按钮
        WebElement submit_input = webDriver.findElement(By.id("kw"));
        submit_input.sendKeys("唐诗三百");
        submit_input.submit();
        //等待三秒
        Thread.sleep(3000);

        //getSize-获取当前定位元素的大小,如返回输入框的大小
        WebElement getSize_input = webDriver.findElement(By.id("kw"));
        Dimension size = getSize_input.getSize();
        System.out.println("\n\n\n\n\n\n\n\n dimension size "+size+"\n\n\n\n\n\n\n\n");
        //等待三秒
        Thread.sleep(3000);

        //getText-获取当前元素对应的文本内容,input对应的文本内容为空
//        WebElement getText_input = webDriver.findElement(By.id("kw"));
        WebElement getText_input = webDriver.findElement(By.xpath("//div/div/div/h3"));
        String text = getText_input.getText();
        System.out.println("\n\n\n\n\n\n\n\n  text "+text+"\n\n\n\n\n\n\n\n");
        //等待三秒
        Thread.sleep(3000);

        //getAttribute-获取元素属性值
        WebElement getAttribute_input = webDriver.findElement(By.id("kw"));
        //括号中填写元素标签中的属性名,会根据此属性名获取其对应的属性值,以input标签元素中的属性名name为例获取其对应的值
        String name = getAttribute_input.getAttribute("name");
        System.out.println("\n\n\n\n\n\n\n\n  name "+name+"\n\n\n\n\n\n\n\n");
        //等待三秒
        Thread.sleep(3000);

        //isDisplayed-获取该元素是否为用户可见,返回结果为布尔值
        WebElement isDisplayed_input = webDriver.findElement(By.id("kw"));
        boolean displayed = isDisplayed_input.isDisplayed();
        System.out.println("\n\n\n\n\n\n\n\n  displayed "+displayed+"\n\n\n\n\n\n\n\n");
        //等待三秒
        Thread.sleep(3000);

        String currentUrl = webDriver.getCurrentUrl();
        System.out.println("\n\n\n\n\n\n\n\n  currentUrl "+currentUrl+"\n\n\n\n\n\n\n\n");

        //click-点击对象,可以点击文本链接,可以点击按钮,可以点击复选框等,
        // 这里是接着前面的操作在百度搜索框中输入了唐诗三百后的界面中找到文本链接-地图,再点击进行测试
        WebElement click_news = webDriver.findElement(By.linkText("地图"));
        click_news.click();

        //等待5秒
        Thread.sleep(5000);

        //关闭资源(关闭浏览器)
        webDriver.close();
//        webDriver.quit();

    }


}


感谢阅读,祝君暴富!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/618840.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

idea选中一个词修改时光标进入悬浮框无法修改

idea选中一个词修改时光标进入悬浮框无法修改 设置参数信息悬悬浮时间: File-->Settings-->Editor-->Code Completion-->Show parameter info popup

LeetCode 题目 121:买卖股票的最佳时机

❤️❤️❤️ 欢迎来到我的博客。希望您能在这里找到既有价值又有趣的内容,和我一起探索、学习和成长。欢迎评论区畅所欲言、享受知识的乐趣! 推荐:数据分析螺丝钉的首页 格物致知 终身学习 期待您的关注 导航: LeetCode解锁100…

重发布和路由策略实验(课堂练习)

需求: 将1.1.1.0/24网段(不在OSPF中)重发布到网络中,不允许出现次优路径,实现全网可达。 需求分析: 1、在R1上重发布1.1.1.0/24网段,但是需要过滤192.168.12.0/24和192.168.13.0/24 2、在R2和R3…

截图识别OCR怎么操作?一键精准识别工具分享

截图识别OCR怎么操作?截图识别OCR软件在现代办公和学习中扮演着越来越重要的角色,它们能够将图片中的文字内容快速准确地转换为可编辑的文本。无论是处理文档、整理笔记,还是进行学术研究、资料收集,这些软件都能快速、准确地将图…

2024年怎样提取小程序里的视频

在未来的2024年,我们亲眼目睹了科技的飞速发展和互联网的无限可能。在这个数字化世界中,小程序已经成为我们日常生活中不可或缺的一部分,无论是购物、学习,还是娱乐,小程序都给我们带来了前所未有的便利。然而&#xf…

太速科技-FMC377_双AD9361 射频收发模块

FMC377_双AD9361 射频收发模块 FEATURES: ◆ Coverage from 70M ~ 6GHz RF ◆ Flexible rate 12 bit ADC/DAC ◆ Fully-coherent 4x4 MIMO capability, TDD/FDD ◆ RF ports: 50Ω Matched ◆ support both internal reference and exter…

腾讯提出InstantMesh:超快速的图像转 3D且质量很高,30秒内免费从一张图片生成3D模型

腾讯提出的InstantMes,能够从单张图像快速生成高质量的三维网格模型。这项技术利用了前馈框架,结合了多视图扩散模型和基于大规模重建模型(LRM)的稀疏视图重建技术,极大地优化了3D资产的创建过程。 如上图所示&#xf…

第四届上海理工大学程序设计全国挑战赛 J.上学 题解 DFS 容斥

上学 题目描述 usst 小学里有 n 名学生,他们分别居住在 n 个地点,第 i 名学生居住在第 i 个地点,这些地点由 n−1 条双向道路连接,保证任意两个地点之间可以通过若干条双向道路抵达。学校则位于另外的第 0 个地点,第…

插件:Best HTTP

一、简介 WebSocket WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。…

【保姆级教程】VMware Workstation Pro的虚拟机导入vritualbox详细教程

解决方案 1、OVF格式2、VMX格式 1、OVF格式 选定需要导出的虚拟机(关闭或者挂起状态下)依次选择文件-导出为ovf 在Vritualbox导入刚刚导出的.ovf文件 更改路径,按实际需要修改 成功导入 2、VMX格式 如果在VMware Workstation Pro导出的…

算法练习之双指针算法

目录 前言 一、移动零【做题链接】 二、复写零【做题链接】 三、快乐数【做题链接】 四、盛水最多的容器【做题链接】 五、查找总价值为目标值的两件商品【做题链接】 六、三数之和【做题链接】 七、四数之和 【做题链接】 八、有效三角形的个数【做题链接】 总结 前言…

MapReduce | 二次排序

1.需求 主播数据--按照观众人数降序排序,如果观众人数相同,按照直播时长降序 # 案例数据 用户id 观众人数 直播时长 团团 300 1000 小黑 200 2000 哦吼 400 7000 卢本伟 100 6000 八戒 250 5000 悟空 100 4000 唐僧 100 3000 # 期望结果 哦吼 4…

STC8增强型单片机开发【电位器案例(ADC)⭐⭐】

目录 一、引言 二、硬件准备 三、电路连接 四、软件编程 五、案例实现 六、总结 一、引言 STC8系列增强型单片机以其高性能、低功耗和丰富的外设接口,在嵌入式系统开发中得到了广泛应用。其中,模数转换器(ADC)是单片机的一…

鸿蒙内核源码分析(共享内存) | 进程间最快通讯方式

运行机制 共享好端端的一词,近些年被玩坏了,共享单车,共享充电宝,共享办公室,共享雨伞… 甚至还有共享女朋友,真是人有多大胆,共享有多大产。但凡事太尽就容易恶心到人,自己也一度被 共享内存 恶心到了&am…

代码生成工具1 ——项目简介和基础开发

1 项目简介 需要提前在数据库建好表,然后执行代码生成工具,会生成简单的Java文件,避免重复编写增删改查代码。类似的工具网上有很多,本人开发这个工具属于自娱自乐。这个专栏会记录开发的过程。 2 项目搭建 数据库使用MySQL &…

MySQL中的子查询

子查询,在一个查询语句中又出现了查询语句 子查询可以出现在from和where后面 from 表子查询(结果一般为多行多列)把查询结果继续当一张表对待 where 标量子查询(结果集只有一行一列)查询身高最高的学生,查询到一个最高身高 列子查询(结果集只有一行多列) 对上表进行如下操作 …

韩顺平0基础学Java——第10天

p202-233 类与对象(第七章) 成员方法 person类中的speak方法: 1.public表示方法是公开的 2.void表示方法没有返回值 3.speak()中,speak表示方法名,括号是形参列表。 4.大括号为方法体&am…

SpringCloud2024最新版链路追踪教程micrometer+zipkin

本文基于B站尚硅谷2024版springcloud教学视频,主要用于自己学习记录以及分享技术,侵权私删 自己本机环境信息: jdk:17.0.10springboot:3.2.0springcloud:2023.0.0 micrometer 之前行业内使用的分布式链路…

机器学习案例:加州房产价格(一)

参考链接:https://hands1ml.apachecn.org/2/ 假设你是被一家地产公司雇佣的数据科学家,现在需要做一些工作。 公司所给的数据集是StatLib 的加州房产价格数据集。这个数据集是基于 1990 年加州普查的数据。数据已经有点老,但它有许多优点&…

HCIP的学习(15)

第六章,BGP—边界网关协议 自治系统—AS ​ 定义:由一个单一的机构或组织所管理的一系列IP网络及其设备所构成的集合。 ​ AS的来源: 整个网络规模过大,会导致路由信息收敛速度过慢,设备对相同目标认知不同。AS之间…