Webdriver元素定位的方法
webdriver提供了8种元素定位方法:
1、id
2、name
3、tag name
4、class name
5、link text
6、partial link text
7、xpath
8、css
以百度首页搜索输入框为例


加载浏览器;
from selenium import webdriver
driver = webdriver.Chrome()
1 使用ID定位搜索输入框:
<input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off">
driver.find_element_by_id('kw')
2 使用name定位搜索输入框:
driver.find_element_by_name('wd')
3 使用tag name搜索输入框:
driver.find_element_by_tag_name('input')
driver.find_elements_by_tag_name('input')[1]
4 使用class name 定位:
driver.find_element_by_class_name('s_ipt')
5 使用link text定位“新闻“”链接:
<a href="http://news.baidu.com" target="_blank" class="mnav">新闻</a>
driver.find_element_by_link_text("新闻")
6 使用partial link text定位:
driver.find_element_by_partial_link_text("新")
7 使用css定位搜索输入框:
<input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off">
a css通过id定位时,使用"#"表示元素的id
driver.find_element_by_css_selector("#kw")
b css通过class name定位时,使用".",表示class name
driver.find_element_by_css_selector(".s_ipt")
c css通过tag name定位时,直接使用元素的标签
driver.find_element_by_css_selector("input")
d css通过其它属性定位时,直接使用元素的标签
driver.find_element_by_css_selector("[autocomplete='off']") #注意单双引号的使用
driver.find_element_by_css_selector("[maxlength='255']")
e css定位,可以在参数中加入元素的标签名称
driver.find_element_by_css_selector("input#kw")
driver.find_element_by_css_selector("input.s_ipt")
driver.find_element_by_css_selector("input[autocomp='off']")
f css的层级定位
driver.find_element_by_css_selector("form#form>span:nth-child(1)>input")
g css的逻辑运算
用有一个元素来定位元素时,如果有其他元素的属性和此元素重复,可以组合多个属性来共同定位
组合多个属性定位元素定位百度搜索框
driver.find_element_by_css_selector('input[id="kw"] and [name="wd"]')
8 使用xpath定位:
a 使用元素定位
driver.find_element_by_xpath("//input[@id='kw']")
driver.find_element_by_xpath("//input[@name='wd']")
driver.find_element_by_xpath("//input[@class='s_ipt']")
b xpath层级定位
driver.find_element_by_xpath("//input[@id='form']//span[1]//input")
driver.find_element_by_xpath("//[@class='fm']//span[1]//input")
Webdriver元素定位的方法的更多相关文章
- Selenium之WebDriver元素定位方法
Selenium WebDriver 只是 Python 的一个第三方框架, 和 Djangoweb 开发框架属于一个性质. webdriver 提供了八种元素定位方法,python语言中也有对应的方 ...
- Selenium Webdriver元素定位的八种常用方式
楼主原创,欢迎学习和交流,码字不容易,转载请注明出处,谢谢. 在使用selenium webdriver进行元素定位时,通常使用findElement或findElements方法结合By类返回的元素 ...
- Selenium Webdriver元素定位的八种常用方法
如果你只是想快速实现控件抓取,而不急于了解其原理,可直接看: http://blog.csdn.net/kaka1121/article/details/51878346 如果你想学习web端自动化, ...
- python3 selenium webdriver 元素定位xpath定位骚操作
源文http://www.cnblogs.com/qingchunjun/p/4208159.html By.xpath() 这个方法是非常强大的元素查找方式,使用这种方法几乎可以定位到页面上的任意元 ...
- Selenium Webdriver元素定位的八种常用方式(转载)
转载自 https://www.cnblogs.com/qingchunjun/p/4208159.html 在使用selenium webdriver进行元素定位时,通常使用findElement或 ...
- 爬虫-【selenium—Webdriver元素定位的八种常用方式
在使用selenium webdriver进行元素定位时,通常使用findElement或findElements方法结合By类返回的元素句柄来定位元素.其中By类的常用定位方式共八种,现分别介绍如下 ...
- selenium webdriver——元素定位
元素定位: >>WebDriver提供了八种元素定位方法,在Python语言中,所对应的方法如下: >>id属性定位:有唯一性 find_element_by_id(" ...
- Webdriver元素定位1
元素的定位应该是自动化测试的核心,要想操作一个元素,首先应该识别这个元素. webdriver提供了一系列的元素定位方法,常用的有以下几种: id name class name tag link t ...
- Selenium Webdriver元素定位的八种常用方式【转】
在使用selenium webdriver进行元素定位时,通常使用findElement或findElements方法结合By类返回的元素句柄来定位元素.其中By类的常用定位方式共八种,现分别介绍如下 ...
随机推荐
- .net软件开发脚本规范-JS标准
一. JS标准 新增页面表单检查方法名称固定为checkForm. 查询页面表单检查方法名称固定为checkSearchForm. 检查表单方法checkForm与checkSearchForm固定放 ...
- Unity进阶之ET网络游戏开发框架 02-ET的客户端启动流程分析
版权申明: 本文原创首发于以下网站: 博客园『优梦创客』的空间:https://www.cnblogs.com/raymondking123 优梦创客的官方博客:https://91make.top ...
- 2019-SUCTF-web记录
1.web1-chkin 首先发现服务器中间件为nginx,并且fuzz上传过滤情况,是黑名单,带ph的全部不能上传切对文件内容中包含<?进行过滤,并且服务器对文件头有exif_type的判断, ...
- NN入门,手把手教你用Numpy手撕NN(一)
前言 这是一篇包含极少数学推导的NN入门文章 大概从今年4月份起就想着学一学NN,但是无奈平时时间不多,而且空闲时间都拿去做比赛或是看动漫去了,所以一拖再拖,直到这8月份才正式开始NN的学习. 这篇文 ...
- Python3 完美解决unittest框架下不生成测试报告
前提: 1.运行测试用例一切正常,只是没有测试报告显示 2.使用命令行pyhon 脚本名字.py 却可以生成测试报告 3.pycharm 在运行测试用例的时候 默认是以unittest 框架来运行的, ...
- Redis学习总结(五)--Redis集群创建
在之前我们讲到了主从,但是对于大数据量的场景下我们就需要用到集群了,让我们来了解下集群吧. 为什么需要集群 单机内存太小 redis最高可以达到10万/s 请求,如果超过该频率呢? 数据分布方式 数据 ...
- 设计模式(C#)——03建造者模式
推荐阅读: 我的CSDN 我的博客园 QQ群:704621321 当一个复杂对象由一些子对象构成,并且子对象的变化会导致复杂对象的修改.这时我们需要提供一种"封装机制&qu ...
- unity_数据结构(常见数据结构及适用场景)
常见的数据结构: 1.Array: 最简单的数据结构 特点:数组存储在连续的内存上.数组的内容都是相同类型.数组可以直接通过下标访问.优点:由于是在连续内存上存储的,所以它的索引速度非常快,访问一个元 ...
- javaScript 基础知识汇总(五)
1.垃圾回收 JavaScript 的内存管理是自动的,不能强制执行或者阻止执行 可达性 JavaScript中主要的内存管理概念是可达性. 什么是可达性? 定义一个对象 let user = { n ...
- Linux下Tomcat项目访问路径修改
1.去除端口号8080. 首先,进入tomcat的安装目录下的conf目录,我的目录是 /usr/local/apache-tomcat-9.0.20/conf,编辑文件server.xml. 将se ...