Selenium3自动化测试【16】元素定位之Tag
@
tag name方法是通过对HTML页面中tag name匹配方式来定位元素的。类似与JavaScript中的getElementsByTagName()。
tag name方法在某些特定场合下十分有用,例如,通过标签的tag name可以一次性定位到页面中的所有复选框元素。
1. 通过tag name定位Bing案例
依旧使用Bing首页的搜索框为例。
例:find_element_by_tag_name("input").send_keys("1234")。

搜索框元素的属性描述HTML代码如下,可以观察到该元素的标签是:
<input class="b_searchbox" id="sb_form_q" name="q" title="输入搜索词" type="search" value="" maxlength="100" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" aria-controls="sw_as" aria-autocomplete="both" aria-owns="sw_as">
Selenium通过FireFox浏览器驱动操作输入框的代码如下:
from selenium import webdriver
driver= webdriver.Firefox()
driver.get("https://cn.bing.com/")
driver.find_element_by_tag_name("input").send_keys("bella")
driver.quit() # 关闭浏览器
但是通过标签名的定位方式,要慎用,如果能够不适用还是尽量不用,因为一个页面有大量重复的标签名,容易造成混乱,从而使Selenium无法找到正确的元素。
Bing首页的输入框和搜索按钮都是input标签,虽然前面的代码能够成功的执行且在输入框中成功键入了Bella,但是该案例具有一定的偶然性(是由于输入框元素是第1个input标签的缘故)。换成其它案例,就未必能够成功执行了。
搜索框元素
<input class="b_searchbox" id="sb_form_q" name="q" title="输入搜索词" type="search" value="" maxlength="100" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" aria-controls="sw_as" aria-autocomplete="both" aria-owns="sw_as">
Bing首页的搜索按钮
<input type="submit" class="b_searchboxSubmit" id="sb_form_go" tabindex="0" name="go">
2. 通过tag name定位一组元素案例
在实际过程中,可通过tag name定位一组元素。通过html语言简单编写了checkbox.html文件。checkbox.html页面的html代码如下(本书提供的资料里也会提供该案例)。
<html>
<head>
<title>复选框测试实例</title>
</head>
<body>
请选择你喜爱的水果</br>
<input type="checkbox" name="fruit" value ="apple" >苹果<br>
<input type="checkbox" name="fruit" value ="orange">桔子<br>
<input type="checkbox" name="fruit" value ="mango">芒果<br>
</body>
</html>
checkbox.html页面的展现效果如图所示。

通过checkbox.html页面的html代码可以看到3个复选框的标签都是标签。
案例要求:
设计Selenium程序,实现同时选中3种水果的复选框。
代码如下:
from selenium import webdriver
from time import sleep
driver = webdriver.Firefox()
driver.get("file:///D:/checkbox.html") #checkbox.html的路径要根据自己的实际情况调整
inputs = driver.find_elements_by_tag_name("input")
for i in inputs:
# 通过看源代码,使用type或name均可,因为三种水果这3个元素,这2个属性均相同
if i.get_attribute("type") == "checkbox":
#if i.get_attribute("name") == "fruit":
i.click()
sleep(3)
driver.quit()
通过上面的代码,可以看到是通过find_elements_by_tag_name方法定位了所有标签为的元素。
3.【测试全系列视频课程】请点击我哦.....
地址:https://ke.qq.com/course/2525707?tuin=9c43f38e
地址:https://51test.ke.qq.com/?tuin=9c43f38e
图书京东、当当有售
京东:https://item.jd.com/12784287.html
当当:http://product.dangdang.com/29177828.html)
Selenium3自动化测试【16】元素定位之Tag的更多相关文章
- Web UI自动化测试基础——元素定位(三)
本篇文章整理了元素定位的基础知识——iframe框架中的元素定位. 一.iframe框架元素定位 iframe是Html页面的内联框架,如果在自动化测试中无法定位到某个元素,那么很有可能是因为该元素在 ...
- python3+selenium3自动化1——元素定位
1.selenium的webdriver提供了八种基本的元素定位方法 打开浏览器 driver = webdriver.Chrome() driver.get('https://www.baidu.c ...
- web自动化测试(java)---元素定位
和python类似,java-selenium也提供了很多种元素定位的方法,具体如下: findElement(By.id()) findElement(By.name()) findElement( ...
- Web UI自动化测试基础——元素定位(二)
本篇文章整理了元素定位的基础知识——多个元素定位方式. 一.多个元素定位方式简介 同单个元素定位方式相同,多个元素定位方式也有与之对应的8种方式,即id.name.class_name.tag_nam ...
- Web UI自动化测试基础——元素定位(一)
本篇文章整理了元素定位的基础知识——单个元素定位方式. 一.单个元素定位方式简介 1. find_element_by_id 通过元素的id属性进行定位.以百度首页为例,首先进入https://www ...
- 搭建Python自动化测试环境+元素定位
https://blog.csdn.net/GitChat/article/details/79081187
- Python自动化学习--元素定位
from selenium import webdriver import time driver = webdriver.Chrome() driver.get("https://www. ...
- XP定位(APP元素定位)
Appium app自动化测试经验分享-Xpath定位总结 在我看来,自动化测试中元素定位的倚天剑和屠龙刀莫过于 Xpath和CSS,但CSS只用于Web(之前已经分享过),这次就分享下Xpath的定 ...
- Selenium3自动化测试【17】元素定位之Link定位
Link定位 find_element_by_link_text方法是通过文本链接来定位元素. 以Bing首页中顶部的[学术]链接为例,如图所示. 查看对应的html代码.从html中我们能看出这是一 ...
随机推荐
- Linux自学之旅-基础命令(chown和chgrp)
转: Linux自学之旅-基础命令(chown和chgrp) Linux自学之旅-基础命令(改变所有者与所属组的命令) 文章目录 前言 一.chown命令 二.chgrp命令 总结 前言 1.上一节我 ...
- POJ-3468(线段树+区间更新+区间查询)
A Simple Problem With Integers POJ-3468 这题是区间更新的模板题,也只是区间更新和区间查询和的简单使用. 代码中需要注意的点我都已经标注出来了,容易搞混的就是up ...
- 【odoo14】第四章、应用模型
由于本章有包含很多基础知识,个人不会全部转化为自己的语言.直接机器翻译了(用斜体标注,机器翻译反而一字不落,我会过滤掉冗余的内容),虽然机翻,但会保证意思不会偏. 本章主要章节如下: 定义模型展示及顺 ...
- 二叉树的建立与遍历(c语言)入门
树其实在本质上就是一对多,链表就是一对一. 二叉树的建立: 这里的代码采用的是最粗暴的创建方法,无实际用处.但初次学习二叉树可以通过这个创建方法更好的理解二叉树. 二叉树的遍历: 遍历在大体上分为递归 ...
- P1164_小A点菜(JAVA语言)
思路 简单动态规划问题 题目背景 uim神犇拿到了uoi的ra(镭牌)后,立刻拉着基友小A到了一家--餐馆,很低端的那种. uim指着墙上的价目表(太低级了没有菜单),说:"随便点" ...
- 平方十位数(蓝桥杯第八届国赛真题 JAVA-B组)
思路:从大到小枚举,判断其平方是否不重复 答案:9814072356 //水题 标题:平方十位数 由0~9这10个数字不重复.不遗漏,可以组成很多10位数字. 这其中也有很多恰好是平方数(是某个数的平 ...
- 递归实现1-n的全排列(JAVA语言)
思路: For example: 123的全排列= 1在最前面 23的全排列 + 2在最前面 13的全排列 + 3最前面 12的全排列 所以只需交换和最前面元素的位置,生成剩余元素的全排列即可. im ...
- java例题_09 1000以内的完全数
1 /*9 [程序 9 求完数] 2 题目:一个数如果恰好等于它的所有因子之和,这个数就称为"完数". 3 例如 6=1+2+3.编程找出 1000 以内的所有完数. 4 */ 5 ...
- irace package -- 参数调优神器
目录 1. irace 是什么 2. 安装 irace 3. irace 的运行机制 4. irace 的配置环境 4.1. parameters 4.2. target algorithm runn ...
- Oment++ 初学者教程 第4节-将其转变为真实网络
4.1两个以上的节点 现在,我们将迈出一大步:创建几个tic模块并将它们连接到网络中.现在,我们将使它们的工作变得简单:一个节点生成一条消息,其他节点继续沿随机方向扔消息,直到它到达预定的目标节点为止 ...