@

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的更多相关文章

  1. Web UI自动化测试基础——元素定位(三)

    本篇文章整理了元素定位的基础知识——iframe框架中的元素定位. 一.iframe框架元素定位 iframe是Html页面的内联框架,如果在自动化测试中无法定位到某个元素,那么很有可能是因为该元素在 ...

  2. python3+selenium3自动化1——元素定位

    1.selenium的webdriver提供了八种基本的元素定位方法 打开浏览器 driver = webdriver.Chrome() driver.get('https://www.baidu.c ...

  3. web自动化测试(java)---元素定位

    和python类似,java-selenium也提供了很多种元素定位的方法,具体如下: findElement(By.id()) findElement(By.name()) findElement( ...

  4. Web UI自动化测试基础——元素定位(二)

    本篇文章整理了元素定位的基础知识——多个元素定位方式. 一.多个元素定位方式简介 同单个元素定位方式相同,多个元素定位方式也有与之对应的8种方式,即id.name.class_name.tag_nam ...

  5. Web UI自动化测试基础——元素定位(一)

    本篇文章整理了元素定位的基础知识——单个元素定位方式. 一.单个元素定位方式简介 1. find_element_by_id 通过元素的id属性进行定位.以百度首页为例,首先进入https://www ...

  6. 搭建Python自动化测试环境+元素定位

    https://blog.csdn.net/GitChat/article/details/79081187

  7. Python自动化学习--元素定位

    from selenium import webdriver import time driver = webdriver.Chrome() driver.get("https://www. ...

  8. XP定位(APP元素定位)

    Appium app自动化测试经验分享-Xpath定位总结 在我看来,自动化测试中元素定位的倚天剑和屠龙刀莫过于 Xpath和CSS,但CSS只用于Web(之前已经分享过),这次就分享下Xpath的定 ...

  9. Selenium3自动化测试【17】元素定位之Link定位

    Link定位 find_element_by_link_text方法是通过文本链接来定位元素. 以Bing首页中顶部的[学术]链接为例,如图所示. 查看对应的html代码.从html中我们能看出这是一 ...

随机推荐

  1. Python 学习笔记(3)

    Python 文件I/O 读取键盘输入: Python提供了两个内置函数从标准输入读入一行文本,默认的标准输入是键盘: 1. raw_input #函数从标准输入读取一个行,并返回一个字符串(去掉结尾 ...

  2. 如何删除Image元素下面的空白行及为什么行内元素有底线

    翻译练习 原博客地址:Removing White Space Below Image Elements, or Why Inline Elements Have Descenders HTML中Im ...

  3. 使用gitlab构建基于docker的持续集成(二)

    使用gitlab构建基于docker的持续集成(二) gitlab docker aspnetcore Centos配置gitlab镜像并且启动 Centos配置防火墙 windows上访问gitla ...

  4. css3自动换行排列

    如果一行放不下就会自动换行 display: flex; flex-wrap: wrap; 示例 : html <div class="container"> < ...

  5. Rocket broker启动失败?

    安装 Rocket 时, 执行 nohup sh bin/mqbroker -n localhost:9876 & 启动 broker 失败 更改其内存试试 在下面目录下 : cd distr ...

  6. C++入门(2):为何还学C++?

    本文首发 | 公众号:lunvey 提及编程语言,最近很火的当属Python和Java,似乎C++没落了,真的是这样吗? 转行做程序员,掌握一门编程语言,也就是职业技能,我相信更多的是在乎未来发展而不 ...

  7. Hi3559板载u-boot、kernel及rootfs烧录过程及心得

    这一篇随笔讲叙述下基于Hi3559AV100的BOXER-8410AI板载u-boot.kernel及rootfs烧录具体过程及遇到问题的解决方法与心得. 1.前期板载启动测试和烧录手段 1.1.烧写 ...

  8. Airbnb JavaScript代码规范(完整)

    类型Types 基本数据类型 string number boolean null undefined symbol const foo = 1; let bar = foo; bar = 9; co ...

  9. Java方法:练习,控制台简易计算器

    可以更改计算个数的简易计算器 package com.zdz.method; import java.util.Scanner; public class Operator { public stat ...

  10. 【odoo14】第五章、服务器侧开发-基础

    本章包含如下内容: 定义模型方法和使用api装饰器 向用户反馈错误信息 针对不同的对象获取空数据集 创建新纪录 更新数据集数据 搜索数据 组合数据集 过滤数据集 遍历记录集 排序数据集 重写已有业务逻 ...