selenium学习笔记——定位元素
上一篇介绍了自己对selenium的理解以及测试环境的搭建~这篇主要介绍一下如何定位我们的页面元素。我们以火狐浏览器为例,其中火狐浏览器的版本采用较低的35.0.1版本,大家可以从网站上下载相应的版本。
我们在对页面中元素进行定位之前,要先对浏览器进行操作:
1 public class SearchTest { 2 public static void main(String[] args) { 3 // 1、打开浏览器——创建浏览器驱动 4 WebDriver driver = new FirefoxDriver(); 5 // 2、智能等待10秒 6 driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 7 // 3、窗口最大化 8 driver.manage().window().maximize(); 9 // 4、打开网页 10 driver.get("www.baidu.com"); 11 // 5、定位界面元素,并对元素进行操作——输入内容sendKeys(),点击按钮click() 12 driver.findElement(By.className("s_ipt")).sendKeys("李宗盛"); 13 driver.findElement(By.id("su")).click(); 14 // 6、关闭浏览器 15 driver.close(); 16 // 7、关闭驱动 17 driver.quit(); 18 } 19 }
其中,第五步的定位元素有八种方式:
- className:通过元素的class定位,findElement()方法表示查找元素,By.className()表示通过类名来定位界面上的输入框,sendKeys()表示向输入框中填入“李宗盛” driver.findElement(By.className("spread")).sendKeys("李宗盛");
- id:driver.findElement(By.id("username")).sendKeys("admin");
- linkText:driver.findElement(By.linkText("淘宝网")).click();
- partialLinkText:driver.findElement(By.partialLinkText("淘")).click(); 当连接文本比较长,只写部分也可以
- name:driver.findElement(By.name("username")).sendKeys("admin");
- tagName:driver.findElement(By.tagName("a")).click(); 当页面中的标签名唯一才可以使用
- cssSelector:driver.findElement(By.cssSelector("input[type='button']")).click(); 定位到元素后,直接右键——选择css,复制css路径
- xpath:driver.findElement(By.xpath("//input[@value='查询']")).click(); 一般来说,其他方式定位不到的时候,就可以用这种方式定位;但是如果所有页面元素都用这种方式定位,那么代码的可读性就会比较差
这是元素的定位方式,代码中其他部分,是公共部分。我们类比较多的时候,就可以把这部分公共代码抽取出来。
下一部分,介绍一些页面的高级操作
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 2 本地部署DeepSeek模型构建本地知识库+联网搜索详细步骤