前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >selenium-webdriver|3 API之元素定位

selenium-webdriver|3 API之元素定位

作者头像
测试邦
发布2019-07-31 11:03:10
1.6K0
发布2019-07-31 11:03:10
举报
文章被收录于专栏:测试邦测试邦测试邦

html基本标签认识

HTML是超文本标签语言,主要包括三大部分:文档声明部分、<head>头部部分、<body>主体部分

1.<head>:描述网页的一些关键信息,如配置,设置等

2. <body>:页面展示部分 HTML标签的分类:

块级标签:显示为块状,独占一行,自动换行。

行级标签:一行中,从左往右依次排列,不会自动换行。

块标签

h标签:标题

p标签:段落

列表

ul标签:无序列表,每一项用<li>表示

ol标签:有序列表,每一项用<li>表示

dl标签,定义列表,里面有一个标题<dt>,有多个描述项<dd>

div标签:常用于网页中划分区块,常需配合css一起使用

行标签

span标签:作用与div类似,需配合CSS使用。只不过div是块级标签,span是行级标签

img标签:图片

a标签:配合href属性

Table标签:表格,每一行用tr表示,一行中的每一列用td表示,th:表头,th要放在tr中,替换td

form标签:表单

input标签:

①type:text、 password、 radio、 checkbox、 file、 submit、 reset、 button、 image、 hidden

②name:名字

③id:唯一id值

④checked="checked" 设置单选框或者复选框的默认选中

⑤disabled="disabled" 设置input禁用

⑥hidden="hidden" 隐藏输入框,隐藏的内容依然可以向后台传递相当于

<input type="hidden"name="hidden"value="121"/>

select标签

① <select></select>标签中有多个选项,用<option></option>表示

② 一个<select></select>组合只能有一个name,所以使用时需给select标签起name, 而不是给option标签起name

③ option标签加上selected="selected"表示默认选中项

基本定位方式介绍及演示

By.id()

By.name()

By.className()

By.tagName()

By.linkText()

By.partialLinkText()

By.cssSelector()

By.xpath()

实例

<div class="test">

<button type="submit" name="btnName" id="submit" class="btn btn-submit btn-primary">登录</button>

</div>

By.id()

通过id进行定位,元素有id,首选用id定位

driver.findElement(By.id("submit"))

By.name()

当没有id属性,如果有name属性,使用name进行定位

driver.findElement(By.name("btnName"))

By.className()

className属性是利用元素的css样式进行元素查找的方法

driver.findElement(By.className("btn-submit"));

By.tagName()

这个方法搜索到的元素通 常不止一个,所以一般使用findElements方法。比如我们现在要查找页面上有多少个button

List<WebElement> buttons = driver.findElements(By.tagName("button"));

System.out.println(buttons.size()); //打印出button的个数

By.linkText()

通过超文本链接上的文字信息来定位元素

<a href="/zentao/user-logout.html">退出</a>

driver.findElement(By.linkText("退出"));

By.partialLinkText()

这个方法是上一个方法的扩展,模糊匹配

driver.findElement(By.partialLinkText("退"))

By.cssSelector()

cssSelector这种元素定位方式跟xpath比较类似,同时如果需要指定多个属性值或定位使用了复合样式表的元素可以使用cssSelector定位

多个属性值组合定位

driver.findElement(By.cssSelector("button [type='submit'][name='btnName']")

复合样式表的元素定位

driver.findElement(By.cssSelector("button.btn.btn-submit.btn-primary"))

By.xpath()

这个方法是非常强大的元素查找方式,使用这种方法几乎可以定位到页面上的任意元素

driver.findElement(By.xpath("//*div/button [@id='submit']"))

层级定位方式介绍

先定位到父级元素

再定位子元素

<ul id=“123” class=“a”>

<li class=“”/>

<li class=“”/>

<li class=“”/>

</ul>

eg.点击如上第一个li标签

WebElement ul = driver.findElement(By.id(“123"));

List<WebElement> lis = ul.findElements(By.tagName(“li"));

lis.get(0).click();

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试邦 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • html基本标签认识
    • 1.<head>:描述网页的一些关键信息,如配置,设置等
      • 2. <body>:页面展示部分 HTML标签的分类:
        • 块标签
        • 行标签
    • 基本定位方式介绍及演示
    • 层级定位方式介绍
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档