首页 技术 正文
技术 2022年11月9日
0 收藏 900 点赞 4,234 浏览 2344 个字

@

目录

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 webdriverdriver= 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 sleepdriver = 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)

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,491
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,906
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,739
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,492
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,130
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,293