Selenium+Java(四)Selenium Xpath元素定位
前言
关于Selenium元素定位,这是最后一篇博客。
Xpath定位可以实现的功能 Selenium+Java(三)Selenium元素定位中讲的定位方式也可以实现,具体要用那种定位方式要根据自己的实际情况来选择,灵活运用。
成功定位到元素才是王道。
一、Xpath层级与索引定位
以12306官网为例:如果想要定位此li标签中的内容,li标签中的内容如果没有相应的属性,此时可以先定位到li的上层元素div或者ul,由上层元素再向下寻找。也可以由下层元素向上寻找,向上寻找与向下寻找差别不大使用“..”即可回到上层元素。

//引用IE浏览器驱动
System.setProperty("webdriver.ie.driver", "./src/driver/IEDriverServer.exe");
//创建IE浏览器对象
InternetExplorerDriver driver = new InternetExplorerDriver();
//浏览器最大化
driver.manage().window().maximize();
//等待浏览器加载完毕
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
//打开网站
driver.get("https://www.12306.cn/index/");
//Xpath定位,先寻找到class属性为news-index的div元素,由此div向下寻找ul中的第一个li标元素中的a元素,如果需要寻找第n个li标签,只需要把1修改成n。
driver.findElement(By.xpath("//div[@Class='news-index']/ul/li[1]/a"));
二、Xpath属性定位
以百度为例:此定位通过可通过标签的属性(id、name、class、其他属性)对元素进行定位

//引用IE浏览器驱动
System.setProperty("webdriver.ie.driver", "./src/driver/IEDriverServer.exe");
//创建IE浏览器对象
InternetExplorerDriver driver = new InternetExplorerDriver();
//浏览器最大化
driver.manage().window().maximize();
//等待浏览器加载完毕
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
//打开网站
driver.get("https://www.baidu.com/");
//Xpath定位
driver.findElement(By.xpath("//*[@id='kw']"));
三、Xpath模糊定位
//引用IE浏览器驱动
System.setProperty("webdriver.ie.driver", "./src/driver/IEDriverServer.exe");
//创建IE浏览器对象
InternetExplorerDriver driver = new InternetExplorerDriver();
//浏览器最大化
driver.manage().window().maximize();
//等待浏览器加载完毕
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
//打开网站
driver.get("https://www.12306.cn/index/");
//Xpath模糊定位属性
driver.findElement(By.xpath("//*[contains(@data-href,'index.h')]"));
//Xpath模糊定位开头
driver.findElement(By.xpath("//*[starts-with(@id,'search_o')]"));
//Xpath模糊定位显示文本
driver.findElement(By.xpath("//*[contains(text(),'我的1230')]"));
Selenium+Java(四)Selenium Xpath元素定位的更多相关文章
- python中通过selenium简单操作及xpath元素定位&轴定位
浏览器的简单操作 # 导入webdriver模块 # 创建driver对象,指定Chrome浏览器 driver = webdriver.Chrome() # 窗口最大化 driver.maximiz ...
- css选择器用法,使用css定位元素,css和xpath元素定位的区别
css定位元素 1.什么是css? CSS(Cascading Style Sheets)层叠样式表,是一种语言,用来描述html或者xml的显示样式.在css语言中有css选择器,在selenium ...
- java selenium webdriver第二讲 页面元素定位
自动化测试实施过程中,测试程序中常用的页面操作有三个步骤 1.定位网页上的页面元素,并存储到一个变量中 2.对变量中存储的页面元素进行操作,单击,下拉或者输入文字等 3.设定页面元素的操作值,比如,选 ...
- Selenium:WebDriver简介及元素定位
参考内容:官方API文档,下载链接:http://download.csdn.net/detail/kwgkwg001/4004500 虫师:<selenium2自动化测试实战-基于python ...
- 跟浩哥学自动化测试Selenium -- 浏览器的基本操作与元素定位(3)
浏览器的基本操作与元素定位 通过上一章学习,我们已经学会了如何设置驱动路径,如何创建浏览器对象,如何打开一个网站,接下来我们要进行一些复杂的操作比如先打开百度首页,在打开博客园,网页后退,前进等等,甚 ...
- selenium环境配置和八大元素定位
一.环境配置 1.selenium下载安装 安装一:pip install selenium(多数会超时安装失败) 安装二:pip install -i https://pypi.tuna.tsing ...
- 【转】【selenium+Python WebDriver】之元素定位不到解决办法
感谢: 煜妃的<Python+Selenium定位不到元素常见原因及解决办法(报:NoSuchElementException)> ClassName定位报错问题:<[Python] ...
- 【转载】【selenium+Python WebDriver】之元素定位
总结: 感谢: “煜妃”<Selenuim+Python之元素定位总结及实例说明> “Huilaojia123”<selenium WebDriver定位元素学习总结> “上海 ...
- KatalonRecorder系列(一):基本使用+XPath元素定位
一.简介 Katalon Recorder是基于selenium的浏览器插件,支持火狐和chrome.可以录制web上的操作并回放,还能导入导出脚本. 二.安装 可在谷歌商店或者火狐附件组件中搜索并选 ...
随机推荐
- Java新特性 5、6、7、8、9、10、11、12、13
文章转载于:https://www.cnblogs.com/hepengju/p/11595102.html 项目地址:https://github.com/hepengju/java-new-fea ...
- 【Windows系统】win10系统假死,窗口不能动,鼠标能动或不能动,最后蓝屏显示错误码: VIDEO_DXGKRNL_FATAL_ERROR 的解决办法
1. 问题的出现过程 最近博主自己用的 windows10 系统就碰到了这个问题. 一开始出现这个问题的征兆是鼠标会时不时地卡顿,一出现卡顿就会等个 1-3秒才能动.然后频繁卡顿(注意,这里根据经验就 ...
- UIScrollView的contentView 助于理解
- 小白学 Python(14):基础数据结构(集合)(上)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- VMware问题--无法获得 VMCI 驱动程序的版本: 句柄无效
关于VMware问题:无法获得 VMCI 驱动程序的版本: 句柄无效.驱动程序“vmci.sys”的版本不正确 问题截图: 解决 1.根据配置文件路径找到对应的.vmx文件: 2.用编辑器打开,找到v ...
- C++学习笔记11_STL
STL又叫标准模板库,提供各种容器. STL是C++一部分,不休要额外安装什么,它被内建在编译器之内. STL重要特点是,数据结构和实现分离. *所谓迭代器,类似一个游标,使用++指向下一个元素,使用 ...
- how2heap 源码及输出
备个份,慢慢写总结 1 first_fit #include <stdio.h> #include <stdlib.h> #include <string.h> i ...
- [考试反思]0805NOIP模拟测试13:窒息
呼啊...苟住了.rank #3 第二次分机房的收官之战.发挥比较稳定 然而差点就不稳定了!!! 过了一遍题目,难度大约是升序,但是一道都不会做!!! 本来感觉T1是一道数学题,以为45分钟以内可以切 ...
- js中的事件绑定的三种方式
1 直接在html标签中绑定 <button onclick = "show()"></button> 注意当你引用的js代码是包裹在window.onlo ...
- Net Core Identity 身份验证:注册、登录和注销 (简单示例)
一.前言 一般我们自己的系统都会用自己设置的一套身份验证授权的代码,这次用net core的identity来完成简单的注册.登录和注销. 二.数据库 首先就是创建上下文,我这里简单的建了Users和 ...