Selenium定位方法汇总及举例

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


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


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

文章目录

    • 1. 定位方法
    • 2. input标签的定位
      • 2.1 input标签代码
      • 2.2 定位方法代码
      • 2.3 定位后的操作方法
    • 3. 文本链接的定位


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

1. 定位方法

想要模拟浏览器操作就需要先定位浏览器的输入框按钮等标签位置
selenium提供了8种定位方式,这8种定位方式在Java selenium中对应八种方法

selenium定位方式Java selenium定位方法
idfindElement(By.id())
namefindElement(By.name())
class namefindElement(By.className())
tag namefindElement(By.tagName())
link textfindElement(By.linkText())
partialink textfindElement(By.partialLinkText())
xpathfindElement(By.xpath())
css selectorfindElement(By.cssSelector())

接下来就是8种定位方式和定位后的操作

2. input标签的定位

以百度首页的搜索框为例
在这里插入图片描述

如不知如何查看对应的input标签可到后续章节中找到对应的方法进行查看

2.1 input标签代码

百度首页输入框页面的input标签对应代码如下

<input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off">

2.2 定位方法代码

输入框定位方法在代码中如下:
在main方法中加入代码即可执行

        //指定驱动,第一个参数为驱动名称,不同浏览器的参数名称不一样,请根据浏览器查询到对应的浏览器参数名,第二个参数为驱动文件路径,即驱动完整文件路径System.setProperty("webdriver.chrome.driver", "D:\\JavaSoftWares\\Google\\driver\\chromedriver-win64\\chromedriver.exe");// 谷歌驱动ChromeOptions cops = new ChromeOptions();// 允许所有请求cops.addArguments("--remote-allow-origins=*");//创建驱动对象WebDriver webDriver = new ChromeDriver(cops);// 启动需要打开的网页webDriver.get("https://www.baidu.com");//定位方法的使用,如定位前端input标签的输入框,定位方式如下//1-通过id定位webDriver.findElement(By.id("kw"));//2-通过name定位webDriver.findElement(By.name("wd"));//3-通过class name定位webDriver.findElement(By.className("s_ipt"));//4-通过tag name定位----因无tag标签,暂未验证webDriver.findElement(By.tagName("input"));//5-通过xpath定位,该定位方法有很多种写法,常用的几种如下:webDriver.findElement(By.xpath("//*[@id='kw']"));webDriver.findElement(By.xpath("//*[@name='wd']"));webDriver.findElement(By.xpath("//input[@class='s_ipt']"));webDriver.findElement(By.xpath("//form[@id='form']/span/input"));webDriver.findElement(By.xpath("//input[@id='kw' and @name='wd']"));//6-通过css定位,同样有很多种方法,如下为几种常用方法:webDriver.findElement(By.cssSelector("#kw"));webDriver.findElement(By.cssSelector("[name=wd]"));webDriver.findElement(By.cssSelector(".s_ipt"));webDriver.findElement(By.cssSelector("form#form > span > input"));     

2.3 定位后的操作方法

定位后可使用如下方法进行操作输入框:

  • 清除输入框内容
    clear()

  • 往输入框中填值
    sendKeys()

代码如下:

        //定位输入框的文本内容WebElement webElement_searchTest = webDriver.findElement(By.id("kw"));//定义输入框中文本的值webElement_searchTest.sendKeys("李白");//等待三秒try {Thread.sleep(3000);} catch (InterruptedException e) {throw new RuntimeException(e);}//清空输入框中文本内容webElement_searchTest.clear();

3. 文本链接的定位

如百度首页的文本链接:新闻、hao123、地图等
在这里插入图片描述
定位代码如下

        //指定驱动,第一个参数为驱动名称,不同浏览器的参数名称不一样,请根据浏览器查询到对应的浏览器参数名,第二个参数为驱动文件路径,即驱动完整文件路径System.setProperty("webdriver.chrome.driver", "D:\\JavaSoftWares\\Google\\driver\\chromedriver-win64\\chromedriver.exe");// 谷歌驱动ChromeOptions cops = new ChromeOptions();// 允许所有请求cops.addArguments("--remote-allow-origins=*");//创建驱动对象WebDriver webDriver = new ChromeDriver(cops);// 启动需要打开的网页webDriver.get("https://www.baidu.com");//文本链接定位,如百度首页的文本链接代码如下/*<a href="http://news.baidu.com" target="_blank" class="mnav c-font-normal c-color-t">新闻</a><a href="https://www.hao123.com?src=from_pc_logon" target="_blank" class="mnav c-font-normal c-color-t">hao123</a>*///对文本链接进行定位的方法,以下均在定位后通过.click方法进行点击访问//7-通过link text定位webDriver.findElement(By.linkText("新闻")).click();try {Thread.sleep(3000);} catch (InterruptedException e) {throw new RuntimeException(e);}webDriver.findElement(By.linkText("hao123")).click();//8-通过partialLink text定位webDriver.findElement(By.partialLinkText("新闻")).click();webDriver.findElement(By.partialLinkText("hao")).click();webDriver.findElement(By.partialLinkText("hao123")).click();

执行程序后浏览器会自动跳转到文本链接对应的页面,上述代码会打开对应的文本链接


感谢阅读,祝君暴富!

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

bcrypt.dll文件丢失怎么办?bcrypt.dll怎么修复?

在计算机系统运行过程中&#xff0c;如果发现无法找到或缺失bcrypt.dll文件&#xff0c;可能会引发一系列的问题与故障。首先&#xff0c;由于bcrypt.dll是系统中一个重要的动态链接库文件&#xff0c;它的主要功能可能涉及到系统核心服务、应用程序支持或者特定功能模块的运行…

activiti 工作流基本使用

Activiti 介绍 Activiti 是一个开源架构的工作流引擎&#xff0c;基于bpmn2.0 标准进行流程定义。其前身是JBPM&#xff0c;Activiti 通过嵌入到业务系统开发中进行使用。 官方是这样介绍 activiti的&#xff1a; Activiti 是领先的轻量级、以 Java 为中心的开源 BPMN 引擎&…

24数维杯ABC题思路已更新!!!!

24数维杯A题保姆级思路&#xff0b;配套代码&#xff0b;后续参考论文 简单麦麦https://www.jdmm.cc/file/2710639/ 24数维杯B题保姆级思路&#xff0b;可执行代码&#xff0b;后续参考论文 简单麦麦https://www.jdmm.cc/file/2710640/ 24数维杯C题保姆级思路&#xff0b;可执…

Kubernetes: 从零开始理解K8s架构

目录 一、简介 二、Kubernetes 架构原理 2.1 控制平面 2.2 Node 组件 2.3 Container Image 2.4 kubelet 2.5 Cluster 三、服务调用 四、总结 一、简介 Kubernetes 是一个开源的容器编排系统&#xff0c;用于自动化应用容器的部署、扩展和管理。它是Google基于Borg…

python中的数据可视化:二维直方图 hist2d()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 python中的数据可视化&#xff1a; 二维直方图 hist2d() 选择题 关于以下代码输出结果的说法中正确的是? import matplotlib.pyplot as plt import numpy as np x np.random.normal(0, 1, …

IQOO Neo7/7SE/PAD2解BL+完美root权限+LSPosed框架-可虚拟定位

QOO Neo7/Neo7SE/Pad/Pad2搭配的是天玑8200系列芯片&#xff0c;继810/920以后再次支持解锁BL&#xff0c;这给我们的玩机带来了很多可能。解锁BL有什么用途呢&#xff1f;最常见的就是获取root权限&#xff0c;刷入各种各种的magisk模块&#xff0c;使用自己喜欢的插件等&…

QT--5

1> 将网络聊天室重新实现一遍 服务器端 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);ser new QTcpServer(this); }Widget::~Widget() {delete ui; }vo…

第七届精武杯部分wp

第一部分&#xff1a;计算机和手机取证 1.请综合分析计算机和手机检材&#xff0c;计算机最近一次登录的账户名是 答案&#xff1a;admin 创建虚拟机时直接给出了用户名 2. 请综合分析计算机和手机检材&#xff0c;计算机最近一次插入的USB存储设备串号是 答案&#xff1a…

【赠书活动第4期】《Rust编程与项目实战》

赠书活动 《Rust编程与项目实战》免费赠书 3 本&#xff0c; 收到赠书之后&#xff0c;写一篇 本书某一节内容 的学习博客文章。 可在本帖评论中表示参加&#xff0c;即可获得赠书&#xff0c;先到先得。学习心得博客链接&#xff0c;后面有空发上来。 赠书截止日期为送出3…

探寻高品质狗粮的性价比之选,福派斯鲜肉狗粮无疑是值得推荐的一款!

引言&#xff1a;在狗狗的健康成长道路上&#xff0c;狗粮作为其日常营养来源&#xff0c;其重要性不言而喻。然而&#xff0c;市面上狗粮品牌繁多&#xff0c;价格与质量各异&#xff0c;让养狗人士们在选择时颇为头疼。今天&#xff0c;我们将为大家深入剖析一款备受赞誉的狗…

ALV Color-颜色

目录 前言 实战 列颜色 行颜色 单元格颜色 前言 在ABAP ALV中&#xff0c;Color颜色设置是一种增强列表显示效果的重要手段&#xff0c;可以用来突出显示特定行、列或单元格&#xff0c;以吸引用户注意或传达数据的特定状态。 颜色设置中有优先级顺序&#xff0c;他们是单元格…

##13 如何在Python中优雅地使用异常处理

文章目录 引言1. 异常处理基础2. 处理多种异常3. 捕捉所有异常4. finally 语句5. 自定义异常结语参考链接 引言 在编程中&#xff0c;错误是在所难免的。Python提供了异常处理机制&#xff0c;允许程序在遇到错误时优雅地恢复。本文将介绍Python中异常处理的基本概念&#xff…