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元素定位的方法的更多相关文章

  1. Selenium之WebDriver元素定位方法

    Selenium WebDriver 只是 Python 的一个第三方框架, 和 Djangoweb 开发框架属于一个性质. webdriver 提供了八种元素定位方法,python语言中也有对应的方 ...

  2. Selenium Webdriver元素定位的八种常用方式

    楼主原创,欢迎学习和交流,码字不容易,转载请注明出处,谢谢. 在使用selenium webdriver进行元素定位时,通常使用findElement或findElements方法结合By类返回的元素 ...

  3. Selenium Webdriver元素定位的八种常用方法

    如果你只是想快速实现控件抓取,而不急于了解其原理,可直接看: http://blog.csdn.net/kaka1121/article/details/51878346 如果你想学习web端自动化, ...

  4. python3 selenium webdriver 元素定位xpath定位骚操作

    源文http://www.cnblogs.com/qingchunjun/p/4208159.html By.xpath() 这个方法是非常强大的元素查找方式,使用这种方法几乎可以定位到页面上的任意元 ...

  5. Selenium Webdriver元素定位的八种常用方式(转载)

    转载自 https://www.cnblogs.com/qingchunjun/p/4208159.html 在使用selenium webdriver进行元素定位时,通常使用findElement或 ...

  6. 爬虫-【selenium—Webdriver元素定位的八种常用方式

    在使用selenium webdriver进行元素定位时,通常使用findElement或findElements方法结合By类返回的元素句柄来定位元素.其中By类的常用定位方式共八种,现分别介绍如下 ...

  7. selenium webdriver——元素定位

    元素定位: >>WebDriver提供了八种元素定位方法,在Python语言中,所对应的方法如下: >>id属性定位:有唯一性 find_element_by_id(" ...

  8. Webdriver元素定位1

    元素的定位应该是自动化测试的核心,要想操作一个元素,首先应该识别这个元素. webdriver提供了一系列的元素定位方法,常用的有以下几种: id name class name tag link t ...

  9. Selenium Webdriver元素定位的八种常用方式【转】

    在使用selenium webdriver进行元素定位时,通常使用findElement或findElements方法结合By类返回的元素句柄来定位元素.其中By类的常用定位方式共八种,现分别介绍如下 ...

随机推荐

  1. 自己动手实现MQTT协议

    写在前面 前段时间弄IoT相关的东西,系统学习了一下 MQTT 协议,在此分享出来. 本文先是对 MQTT 协议做了简单的介绍:接着是对 MQTT协议的内容做了较为全面的解读:最后使用 Python ...

  2. MBR和EFI启动过程

    MBR启动过程 BIOS-->MBR(主引导记录)-->DPT(硬盘分区表)-->DBR(分区引导扇区)-->BootMgr-->BCD-->Winload.exe ...

  3. 数据算法 --hadoop/spark数据处理技巧 --(13.朴素贝叶斯 14.情感分析)

    十三.朴素贝叶斯 朴素贝叶斯是一个线性分类器.处理数值数据时,最好使用聚类技术(eg:K均值)和k-近邻方法,不过对于名字.符号.电子邮件和文本的分类,则最好使用概率方法,朴素贝叶斯就可以.在某些情况 ...

  4. 实时计算大数据处理的基石-Google Dataflow

    ​ 此文选自Google大神Tyler Akidau的另一篇文章:Streaming 102: The world beyond batch ​ 欢迎回来!如果您错过了我以前的帖子,Streaming ...

  5. mybatis 源码分析(三)Executor 详解

    本文将主要介绍 Executor 的整体结构和各子类的功能,并对比效率: 一.Executor 主体结构 1. 类结构 executor 的类结构如图所示: 其各自的功能: BaseExecutor: ...

  6. Mybatis 中的<![CDATA[ ]]>浅析

    在使用mybatis 时我们sql是写在xml 映射文件中,如果写的sql中有一些特殊的字符的话,在解析xml文件的时候会被转义,但我们不希望他被转义,所以我们要使用<![CDATA[ ]]&g ...

  7. GUID做主键真的合适吗

    在一个分布式环境中,我们习惯使用GUID做主键,来保证全局唯一,然后,GUID做主键真的合适吗? 其实GUID做主键本身没有问题,微软的很多项目自带DB都是使用GUID做主键的,显然,这样做是没有问题 ...

  8. Oracle EM的重新配置和界面语言修改

    实际在国内的DBA日常工作中,几乎很少会用到EM进行日常管理.但在Oracle的考试中,为了快速完成某些场景的应答,还是推荐使用EM进行操作的. 1.重新配置EM 2.修改界面语言 1.重新配置EM ...

  9. 在Keras中使用VGG进行物体识别(直接使用)

    https://blog.csdn.net/baimafujinji/article/details/80700263

  10. Vulkan(0)搭建环境-清空窗口

    Vulkan(0)搭建环境-清空窗口 认识Vulkan Vulkan是新一代3D图形API,它继承了OpenGL的优点,弥补了OpenGL的缺憾.有点像科创板之于主板,歼20之于歼10,微信之于QQ, ...