【基础】selenium中元素定位的常用方法(三)
一、Selenium中元素定位共有八种
id
name
className
tagName
linkText
partialLinkText
xpath
cssSelector
其中前六种都比较简单,通过id一般可以得到一个唯一的定位,其他五种要注意元素是否唯一,如果有多个,返回的是匹配的第一个元素。下面详细讲解一下xpath和cssSelector定位。
二、xpath定位
1.通过绝对路径定位
dr.findElement(By.xpath("/html/body/div[2]/div/div/div/div/form/span/input"));
个人测试,第一个html前的斜杠可以有也可以没有。xpath定位时,下标从1开始,如div[2]代表第二个div
2.通过相对路径定位
dr.findElement(By.xpath("//body/div[2]/div/div/div/div/form/span/input"));
3.通过属性值定位
dr.findElement(By.xpath("input[@]id='su'"));
4.通过层级定位,某个元素不容易定位,但是它的父元素可以容易定位到
dr.findElement(By.xpath("//form[@id='form']/span/input"));
5.通过多个属性的逻辑运算符
dr.findElement(By.xpath("//input[@id='kw' and @class='s_ipt']") );
注意:
当值中含空格的时候,会定位不到,如这样定位dr.findElement(By.className("bg s_btn"));所以当有空格时,建议换一个其他的值进行定位。
三、通过cssSelector定位
| 选择器 | 例子 | 说明 |
| .class | .s_ipt | 类名为s_iptd的所有元素 |
| #id | #kw | id为kw的所有元素 |
| 父元素>子元素 | span>input | 父元素为span的所有input元素 |
| [attribute=value] | [type='submit'] | type为submit的所有元素 |
1.通过id选择器定位
dr.findElement(By.cssSelector("input#kw") ).sendKeys("test");
2.通过类名定位器定位
dr.findElement(By.cssSelector("input.s_ipt")).sendKeys("test");
3.通过父子元素
dr.findElement(By.cssSelector("form#form>span>input[name='wd']")).sendKeys("test");
4.通过属性名,多个时,将属性用[]连接在一起
dr.findElement(By.cssSelector("input[id='kw'][name='wd']")).sendKeys("test");
两者对比:
css语法比xpath更加复杂点,但是定位速度更快,语法更加简洁。
【基础】selenium中元素定位的常用方法(三)的更多相关文章
- 『与善仁』Appium基础 — 19、元素定位工具(三)
目录 1.Chrome Inspect介绍 2.Chrome Inspect打开方式 3.Chrome Inspect工具的使用 (1)Chrome Inspect工作前提 (2)Chrome Ins ...
- 《手把手教你》系列技巧篇(十五)-java+ selenium自动化测试-元素定位大法之By xpath中卷(详细教程)
1.简介 按宏哥计划,本文继续介绍WebDriver关于元素定位大法,这篇介绍定位倒数二个方法:By xpath.xpath 的定位方法, 非常强大. 使用这种方法几乎可以定位到页面上的任意元素. ...
- 《手把手教你》系列技巧篇(十八)-java+ selenium自动化测试-元素定位大法之By css中卷(详细教程)
1.简介 按计划今天宏哥继续讲解倚天剑-css的定位元素的方法:ID属性值定位.其他属性值定位和使用属性值的一部分定位(这个类似xpath的模糊定位). 2.常用定位方法(8种) (1)id(2)na ...
- 《手把手教你》系列技巧篇(八)-java+ selenium自动化测试-元素定位大法之By id(详细教程)
1.简介 从这篇文章开始,要介绍web自动化核心的内容,也是最困难的部分了,就是:定位元素,并去对定位到的元素进行一系列相关的操作.想要对元素进行操作,第一步,也是最重要的一步,就是要找到这个元素,如 ...
- [python爬虫] Selenium常见元素定位方法和操作的学习介绍(转载)
转载地址:[python爬虫] Selenium常见元素定位方法和操作的学习介绍 一. 定位元素方法 官网地址:http://selenium-python.readthedocs.org/locat ...
- selenium界面元素定位
一. Selenium界面元素定位 本文元素定位以das2为例 #导入包 from selenium import webdriver #打开火狐驱动 driver=webdriver ...
- python+selenium遇到元素定位不到的问题,顺便记录一下自己这次的错误(报错selenium.common.exceptions.NoSuchElementException)
今天在写selenium一个发送邮件脚本时,遇到一些没有找到页面元素的错误.经过自己反复调试,找原因百度,终于解决了.简单总结一下吧,原因有以下几点: 一:Frame控件嵌套,.Frame/Ifram ...
- 《手把手教你》系列技巧篇(十九)-java+ selenium自动化测试-元素定位大法之By css下卷(详细教程)
1.简介 按计划今天宏哥继续讲解css的定位元素的方法.但是今天最后一种宏哥介绍给大家,了解就可以了,因为实际中很少用. 2.常用定位方法(8种) (1)id(2)name(3)class name( ...
- Selenium Web元素定位方法
Selenium是用于Web应用测试的自动化测试框架,可以实现跨浏览器和跨平台的Web自动化测试.Selenium通过使用WebDriver API来控制web浏览器,每个浏览器都都有一个特定的Web ...
随机推荐
- js全选 反选
// 全选 反选 allChoose: function (o) { var obj = $.extend(true, { id: "#id", name: "name& ...
- Windows下及Mac下的IntelliJ IDEA快捷键
Mac 键盘符号说明 ⌘ == Command ⇧ == Shift ⇪ == Caps Lock ⌥ == Option ⌃ == Control ↩ == Return/Enter ⌫ == De ...
- django Admin文档生成器
Django的admindocs应用可以从模型.视图.模板标签等地方获得文档内容. 一.概览 要激活admindocs,请按下面的步骤操作: 在INSTALLED_APPS内添加django.cont ...
- mkdir -p a/b 表示创建目录a,并创建目录a的子目录b
mkdir -p 命令解释 2016年01月13日 14:24:03 阅读数:742 mkdir -p a/b 表示创建目录a,并创建目录a的子目录b, 若不使用命令-p的话,想要达到同样的效果,需要 ...
- leecode第二题(两数相加)
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode ...
- Eclipse无法使用springboot2.x
<!-- 阿里云提供的镜像地址 --> <mirror> <id>nexus-aliyun</id> <mirrorOf>*</mir ...
- 网格视图GridView的使用
网格视图GridView的排列方式与矩阵类似,当屏幕上有很多元素(文字.图片或其他元素)需要按矩阵格式进行显示时,就可以使用GridView控件来实现. 本文将以一个具体的实例来说明如何使用GridV ...
- (转)C# Xml进行序列化与反序列化
---------------------------------------------------------------文章1---------------------------------- ...
- 2017-2018-2 20165327 实验四《Android程序设计》实验报告
2017-2018-2 20165327 实验四<Android程序设计>实验报告 任务一 Android Stuidio的安装测试: 任务要求 参考Android开发简易教程,安装 An ...
- OnSen UI结合AngularJs打造”美团"APP首页 --Hybrid Ap
1.页面效果图: 演示链接地址:http://www.nxl123.cn/bokeyuan/meiTuanDemo_home/ 2.核心代码 home.html: <ons-page id=&q ...