Selenium八大元素定位(元素定位,元素等待)
Selenium WebDriver查找页面元素及元素操作
元素常用方法定位方法
- 通过id定位元素:find_element_by_id('id_value')
- 通过name定位元素:find_element_by_name('name_value')
- 通过tag_name定位元素:find_element_by_tag_name('tag_name_value')
- 通过class_name定位元素:find_element_by_class_name("class_name")
- 通过css定位元素:find_element_by_css_selector();用css定位是比较灵活
- 通过xpath定位元素:find_element_by_xpath("xpath")
- 通过link_text定位:driver.find_element_by_link_text("新闻").click()
- 通过partial link_text 定位:driver.find_element_by_partial_link_text("闻").click()
定位分类总结
- id,name,class_name:为元素属性定位
- tag_name :为元素标签
- link_text,partial link_text:超链接定位(a标签)
- xpath:为元素路径
- Css:为css元素选择器定位
fireBug,firepath,firefinder
- firebug是firefox下的一个扩展,能够调式所有网站语言,如Html,css等。但Firebug最吸引人的就是javascript调式功能,使用起来非常方便,而且在各种浏览器下都能使用,是一套完整而强大的web开发工具
- FirePath是一个Firebug扩展,它添加了一个开发工具来编辑、检查和生成XPath 1.0表达式、CSS 3选择器和JQuery选择器。
- Firefinder是Firebug的一个附加组件,它可以帮助找到匹配选定的CSS选择器(s)或XPath表达式的HTML元素。你也可以在悬停或通过上下文菜单时自动选择元素。
查看结果,然后通过friendfire特性与朋友分享,或者点击检查,在Firebug的HTML选项卡中找到对应的元素。
定位元素示例

下面是百度输入框的html代码,可以通过firebug或者谷歌的审查元素得(F12):
<input id="kw" class="s_ipt" autocomplete="off" maxlength="255" value="" name="wd">
1.通过id定位
则百度的输入框即可表示为:find_element_by_id(“kw1”)
2.通过name定位
则可以表示为:find_element_by_name(“wd”)
3.通过class_name定位元素
driver.find_element_by_class_name("s_ipt")
4.通过tag_name定位
input其实就是tag_name(标签名)
同样也可以表示成:find_element_by_tag_name("input")
返回:符合条件的第一个标签
可见仅仅通过标签名去定位时,一般一种标签在一个页面里面不会出现不止一次甚至大量出现,这种定位方式的作用不是很大,所以用的也就比较少
5.通过css定位元素
cssSelector这种元素定位方式跟xpath比较类似,但执行速度较快,而且各种浏览器对它的支持都相当到位
一般class是用.标记,id是用#标记,标签名直接写具体标签名就好
find_element_by_css_selector("#su")
find_element_by_css_selector(".s_ipt")
find_element_by_css_selector("[name=wd]")
6.通过xpath定位元素
xpath是一种在xml文档中定位元素的语言。因为HTML可以看作XML的一种实现,所以selenium用户可使用这种强大语言在web应用中定位元素。
xpath的值可以通过firebug或者谷歌的审查元素中
右键功能:复制xpath即可获得
列子:
driver.find_element_by_xpath(".//input[@id='kw']")
driver.find_element_by_xpath(".//*[@id='kw']")
其中的标签名input也可以用*来代替,而且只要是在该标签内,任意属性都可以
7.通过link_text、partial_link_text定位
这两种定位方式是专门用于定位超链接的,也就是对应html页面中的标签,括号里的值就是a标签中的超链接文字,两者的区别在于一个是完整的超链接文字,一个是可以只些部分超链接文字。
Selenium八大元素定位(元素定位,元素等待)的更多相关文章
- UI自动化(selenium+python)之元素定位的三种等待方式
前言 在UI自动化过程中,常遇到元素未找到,代码报错的情况.这种情况下,需要用等待wait. 在selenium中可以用到三种等待方式即sleep,implicitly_wait,WebDriverW ...
- selenium八大元素定位方法
1.ID定位 可以根据元素的id来定位属性,id是当前整个HTML页面中唯一的,所以可以通过id属性来唯一定位一个元素,是首选的元素定位方式.(动态ID不做考虑) # 导入webdriver和By f ...
- Python+Selenium定位不到元素常见原因及解决办法(报:NoSuchElementException)
在做web应用的自动化测试时,定位元素是必不可少的,这个过程经常会碰到定位不到元素的情况(报selenium.common.exceptions.NoSuchElementException ...
- Python3 Selenium定位不到元素常见原因及解决办法
Python3 Selenium定位不到元素常见原因及解决办法 一.问题描述 在做web应用的自动化测试时,定位元素是必不可少的,这个过程经常会碰到定位不到元素的情况: 报错信息: no such e ...
- Python+selenium学习(二) selenium 定位不到元素
转载:https://www.cnblogs.com/tarrying/p/9681991.html tarrying selenium的三种等待时间 //隐式等待(20秒以内没哥一段时间就会去找元素 ...
- selenium使用笔记(三)——元素定位
selenium进行自动化测试的一个很重要的东西那就是元素定位,如果元素都没法定位就无法操作它,也就无法进行自动化测试了.网上对于元素定位有很多的介绍,很详细很详细的,但是依然有很多新手总是会遇到无法 ...
- 为什么selenium定位不到元素
在做web应用的自动化测试时,定位元素是必不可少的,这个过程经常会碰到定位不到元素的情况,一般可以从以下几个方面着手解决: 1.Frame/Iframe原因定位不到元素: 这个是最常见的原因,首先要理 ...
- 自动化测试selenium(三) 由于iframe 定位不到元素
iframe原因定位不到元素 现在的项目后台基本都是上左右结构,要出现这个结构效果,需要使用到了iframe标签: 我们先说说iframe在java中使用的方法: driver.switchTo(). ...
- 转载:selenium webdriver定位不到元素的五种原因及解决办法
1.动态id定位不到元素for example: //WebElement xiexin_element = driver.findElement(By.id("_mail_c ...
- selenium webdriver定位不到元素的五种原因及解决办法
1.动态id定位不到元素 for example: //WebElement xiexin_element = driver.findElement(By.id("_mail_ ...
随机推荐
- 完蛋!我被 Out of Memory 包围了!
是极致魅惑.洒脱自由的Java heap space? 是知性柔情.温婉大气的GC overhead limit exceeded? 是纯真无邪.活泼可爱的Metaspace? 如果以上不是你的菜,那 ...
- 2022/07/16暑期集训考试 day1
T1 取餐号 看到数据范围 直接锁定埃氏筛和线性筛 我打的是一个优化一点的埃氏筛 #include<bits/stdc++.h> using namespace std; #define ...
- .NET 8正式发布
11 月 15 日开始的为期三天的 .NET Conf 在线活动的开幕日上,.NET 8作为微软的开源跨平台开发平台正式发布..NET 团队着重强调云.性能.全栈 Blazor.AI 和 .NET M ...
- 数据结构与算法 | 动态规划算法(Dynamic Programming)
上一篇文末已经提到了记忆化搜索是动态规划(Dynamic Programming)的一种形式,是一种自顶向下(Top-Down)的思考方式,通常采用递归的编码形式:既然动态规划有自顶向下(Top-Do ...
- 关联规则挖掘:Apriori算法的深度探讨
在本文中,我们深入探讨了Apriori算法的理论基础.核心概念及其在实际问题中的应用.文章不仅全面解析了算法的工作机制,还通过Python代码段展示了具体的实战应用.此外,我们还针对算法在大数据环境下 ...
- [Flink] Flink(CDC/SQL)Job在启动时,报“ConnectException: Error reading MySQL variables: Access denied for user 'xxxx '@'xxxx' (using password: YES)”(1个空格引发的"乌龙")
1 问题描述 1.1 基本信息 所属环境:CN-PT 问题时间:2023-11-21 所属程序: Flink Job(XXXPT_dimDeviceLogEventRi) 作业类型: Flink SQ ...
- 如何搭建园区3d可视化大屏
搭建园区3D可视化大屏需要考虑多个方面,包括硬件设备.数据源获取.软件工具和可视化设计. 以下是一个详细的步骤指南,帮助您了解如何搭建园区3D可视化大屏. 1. 硬件设备选择: - 显示屏幕:选择适合 ...
- [转载] Winform WebBrowser 使用 Edge 内核
原文地址 C# 设置 WebBrowser 使用 Edge 内核_c# webbrowser 内核 - CSDN 博客 原文内容 1. 问题描述 用 C# 写了一个小工具, 需要显示网页上的内容, 但 ...
- Baidu Comate实践指南,惊艳了我...
1 啥是Baidu Comate Comate是百度开发的编程大模型工具,它基于文心大模型,结合百度积累多年的编程现场大数据和外部优秀开源数据,为我们生成更符合实际研发场景的优质代码:它能提升编码效率 ...
- electron入门之配置镜像加速(四)
electron入门到入土,配置阿里镜像加速.为了防止后面我们打包龟速,需要给electron配置阿里镜像加速 在下面的文件内添加阿里镜像加速,你的文件位置不一定是这个 C:\Program File ...
