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类的常用定位方式共八种,现分别介绍如下 ...
随机推荐
- Navicat连接MYsql报错
在Windows中安装mysql8后,使用Navicat连接数据库是出现“ Client does not support authentication protocol requested by s ...
- bytedance专题
一 挑战字符串 1 无重复字符的最长子串(见leetcode bug free) 2 最长公共前缀(见leetcode bug free) 3 字符串的排列 给定两个字符串 s1 和 s2,写一个函数 ...
- DotNetCore 3.0 助力 WPF本地化
概览 随着我们的应用程序越来越受欢迎,我们的下一步将要开发多语言功能.方便越来越多的国家使用我们中国的应用程序, 基于 WPF 本地化,我们很多时候使用的是系统资源文件,可是动态切换本地化,就比较麻烦 ...
- 深入理解Nginx及使用Nginx实现负载均衡
前言: 最近在部署项目时要求实现负载均衡,有趣的是发现网上一搜全部都是以下类似的配置文件 upstream localhost{ server 127.0.0.1:8080 weight=1; ser ...
- JavaScript算法实现——排序
在计算机编程中,排序算法是最常用的算法之一,本文介绍了几种常见的排序算法以及它们之间的差异和复杂度. 冒泡排序 冒泡排序应该是最简单的排序算法了,在所有讲解计算机编程和数据结构的课程中,无一例外都会拿 ...
- mongo常用语法
首先要能进入控制台,进不去自己解决. 基本操作: show users:显示用户 show dbs:显示数据库列表 use <db name> 切换/创建数据库 show collecti ...
- Spring中jdbcTemplate的用法实例
一.首先配置JdbcTemplate: 要使用Jdbctemplate 对象来完成jdbc 操作.通常情况下,有三种种方式得到JdbcTemplate 对象. 第一种方式:我们可以在自己定 ...
- Debian下Hadoop 3.12 集群搭建
Debian系统配置 我这里在Vmware里面虚拟4个Debian系统,一个master,三个solver.hostname分别是master.solver1.solver2.solver3.对了,下 ...
- Android Studio和 adb 的一些常用技巧
AS和ADB的随身手册 工欲善其事,必先利其器. 最近因为换了Mac,很多地方有些不太适应,刚好最近有想写一篇记录一些小工具技巧的文章,顺便就把Mac中AS常用的快捷键也一并对应记录起来吧. 以下为A ...
- Java中时间格式处理,指定N天/小时等之后的时间
1)根据当前时间,获取具体的时刻的时间 N天前 M小时之前 可用 new Date().getTime() - 24 * 60 * 60 * 1000*N[N天之前]的方法来获取处理时间之后的具体的值 ...