selenium中,8种 find element 方法
-*- coding;utf-8 -*-
from selenium import webdriver
dr = webdriver.Chrome()
dr.get("https://www.baidu.com")
#有八种元素定位方法:
#id, name, class name, tag name, link text,部分link text, xpath, css选择器 其中,find_elements_by_xxx 获取的是一组元素。

前7种:
<span id="s_kw_wrap" class="s_ipt_wr"><span class="soutu-btn"></span>
<span class="soutu-btn"></span>
<input type="text" class="s_ipt" name="wd" id="kw" maxlength="" autocomplete="off" value="">
<input></input>
</span>
<div id="u_sp" class="s-isindex-wrap s-sp-menu">
<a href="http://news.baidu.com" target="_blank" class="mnav">超长的新闻名称</a>
</div> #id
dr.find_element_by_id("kw")
#name
dr.find_element_by_name("wd")
#class name
dr.find_element_by_class_name("s_ipt")
#tag name (标签名称)
dr.find_element_by_tag_name("input") #适用于只有一个input标签
dr.find_elements_by_tag_name("input")[0].send_keys() #适用于多个input标签
dr.find_element_by_tag_name("//span/input[0]") #通过父级元素 #text link, 部分text link
dr.find_elements_by_link_text("超长的新闻名称")
dr.find_element_by_partial_link_text("新闻") #xpath
dr.find_element_by_xpath("//input[@id='kw']") # 双斜杠表示不确定
dr.find_element_by_xpath("/*[@id='kw']") # "*"表示所有元素
dr.find_element_by_xpath("//input[@name='wd']")
dr.find_element_by_xpath("//input[@class='s_ipt']")
dr.find_element_by_xpath("//input[@value='123']") dr.find_element_by_xpath("//span/input[0]")#通过父级
dr.find_element_by_xpath("//span[@class='bg s_ipt_wr']/input[0]")#通过父级 也可用多种属性集合
dr.find_element_by_xpath("//input[@id='kw' and @name='wd']")
CSS选择器:

<span id="s_kw_wrap" class="s_ipt_wr"><span class="soutu-btn"></span>
<span class="soutu-btn"></span>
<input type="text" class="s_ipt" name="wd" id="kw" maxlength="" autocomplete="off" value="">
</span> #class 用“.”
dr.find_element_by_css_selector(".s_ipt") #id 用“#”
dr.find_element_by_css_selector("#kw") #name
dr.find_element_by_css_selector("[name=wd]")
dr.find_element_by_css_selector("name='wd'")
dr.find_element_by_css_selector("//input[name='wd']") #组合
dr.find_element_by_css_selector("span>input.s_ipt") #通过父级
dr.find_element_by_css_selector("span>input#kw")
dr.find_element_by_css_selector("span.s_ipt_wr>input")
selenium中,8种 find element 方法的更多相关文章
- Selenium中三种等待的使用方式---规避网络延迟、代码不稳定问题
在UI自动化测试中,必然会遇到环境不稳定,网络慢的情况,这时如果你不做任何处理的话,代码会由于没有找到元素,而报错.这时我们就要用到wait(等待),而在Selenium中,我们可以用到一共三种等待, ...
- Sql Server中三种字符串合并方法的性能比较
文章来自:博客园-DotNet菜园 最近正在处理一个合并字符吕的存储过程,在一个测试系统的开发中,要使用到字符串合并功能,直接在Sql中做.示例:有表內容﹕名称 內容1 abc1 ...
- ASP.NET中26种性能优化方法
系统类 Type类,Object类,String类, Arrary类,Console类, Exception类,GC类, MarshalByRefObject类, Math类. DateTime结构 ...
- UI自动化时,解决selenium中无法点击Element:ElementClickInterceptedException
在跑自动化时,页面上有2个下拉框,两个下拉框无论屏蔽哪一段都会成功,但是同时放开跑时会报错,百度给的解释是上面的下拉框元素覆盖了下面下拉框的元素定位,才会导致报错 百度的解决办法有2种: elemen ...
- Selenium:八种元素定位方法
前言: 我们在做WEB自动化时,最根本的就是操作页面上的元素,首先我们要能找到这些元素,然后才能操作这些元素.工具或代码无法像我们测试人员一样用肉眼来分辨页面上的元素.那么我们怎么来定位他们呢? 在学 ...
- Python中两种处理错误方法的比较
我所说的处理错误的方法,其实是try:,except和raise这两种. 首先抛出一个实例, dictt={'a':1,'b':2,'c':3} try: if dictt['d']>1: #字 ...
- UWP开发中两种网络图片缓存方法
通常情况下,我们的程序需要从服务器读取图片,但如果需要不止一次读取某一张图片的话,就需要做本地缓存了,这样既为用户省一点流量,又能显得你的APP很快. 假如你已经知道了某一张图片的地址,那么第一件事就 ...
- iOS——浅谈iOS中三种生成随机数方法
ios 有如下三种随机数方法:
- Keil C51程序设计中几种精确延时方法
1 使用定时器/计数器实现精确延时 单片机系统一般常选用11.059 2 MHz.12 MHz或6 MHz晶振.第一种更容易产生各种标准的波特率,后两种的一个机器周期分别为1 μs和2 μs,便于精确 ...
随机推荐
- 关于Mui严格模式下的报错解决方案
前言:作为一名程序员遇到Bug总是在所难免的,但是记住"不二过",今天在Vue开发中遇到了一个报错让我纠结了许久,找了许久, 报错的原因是使用了mui导入其js文件导致的. 报错信 ...
- html基本进阶知识【转】
inline和block的区别: 网页一般是两种元素组合起来的,一种是内联元素,也就是行内显示,加上width和height没效果.一种是区块元素,可以加上对应的width和height,通常使用在网 ...
- 解析ArcGis的字段计算器(二)——有玄机的要素Geometry属性,在属性表标记重复点线面
这里所说的重复是指完成重复的,不是叠在一起的两个或多个要素,这种应该叫做“压盖”或“重叠”.重复往往是在合并多Shpfile文件时不小心重复导入造成的. 这里提供一种可能的解决办法,数据无价,请备份! ...
- ASP.NET Web API 2 之 HttpRequestMessage 对象
Ø 前言 在 Web API 中经常会使用到 HttpRequestMessage 和 HttpResponseMessage 对象,这两个对象封装了对 Web API 的请求和响应,位于 Syst ...
- [译]C#7 Pattern Matching
原文 public struct Square { public double Side { get; } public Square(double side) { Side = side; } } ...
- 修改教材P74 一行代码 NineNineTable.java, 让执行结果是个三角形
修改教材P74 一行代码 NineNineTable.java, 让执行结果是个三角形: 提交在IDEA或命令行中运行结查截图,加上学号水印,没学号的不给成绩 2*9=18 3*9=27 4*9=36 ...
- PHP文件系统管理
文件概念: 第一个是windows的文件,另一个php根据LINUX的文件,两者是有所不同的,我们说的页面基于windows的文件可以是是文件夹(也就是目录)或是文件,而php两者都必须有,它包含目录 ...
- mvc 分页PagedList简单使用
1.nuget下载PagedList包 2.PageListHelper类: using PagedList; using System; using System.Collections.Gener ...
- Docker 获取镜像 - 一
docker images docker 镜像获取方式: 1.pull 可以直接从网上拉取: 2.import 可以从现有容器打包成一个镜像: 3.commit 可以从现有容器一个镜像: 4.bu ...
- Kali Linux之使用SET快捷生成钓鱼网站方法
SET (Social Engineering Tools) 1.使用命令:setoolkit 会显示工具菜单 2.输入1 ,选择菜单中的Social-Engineering Attacks (社会工 ...