Python+Selenium有以下八种定位元素的方法:

1. find_element_by_id()

eg: find_element_by_id("kw")

2. find_element_by_name()

eg: find_element_by_name("wd")

3. find_element_by_class_name()

eg: find_element_by_class_name("bg s_btn")

4. find_element_by_tag_name()

eg: find_element_by_tag_name("input")   -- 一般页面上重复标签比较多,所以很难通过标签名去区分不同的元素

5. find_element_by_link_text()

eg: find_element_by_link_text("hao123")

eg: find_element_by_link_text(u"新闻")   -- 在中文前面加个小“u”可以有效的避免中文乱码的问题

6. find_element_by_partial_link_text()

eg: find_element_by_partial_link_text("一个很长的文本的一部分")   -- 如果一个文本链接很长,可以只取其中一部分

7. find_element_by_xpath()

eg: find_element_by_xpath("/html/body/div/div[2]/div/div/div/from/span[2]/input")   -- 通过绝对路径定位

eg: find_element_by_xpath("//input[@autocomplete='off']")   -- 通过元素任意属性定位

eg: find_element_by_xpath("//*[@class='bg s_btn']")   -- 如果不想指定标签名也可以用星号(*)代替

eg: find_element_by_xpath("//form[@id='form']/span[2]/input")   -- 通过层级和属性定位

eg: find_element_by_xpath("//input[@id='kw' and @class='su']/span/input")   -- 可以使用逻辑运算符

8. find_element_by_css_selector()

eg: find_element_by_css_selector(".s_ipt")   -- 通过class属性定位

eg: find_element_by_css_selector("#kw")   -- 通过id属性定位

eg: find_element_by_css_selector("input")   -- 通过标签名定位

eg: find_element_by_css_selector("span>input")   -- 通过父子关系定位

eg: find_element_by_css_selector("input[autocomplete='off']")   -- 通过属性定位

eg: find_element_by_css_selector("span.bg s_btn_wr>input#su")   -- 组合定位

用By定位元素:

在使用 By 时需要将 By 类导入

from selenium.webdriver.common.by import By

find_element(By.ID,"kw")

find_element(By.NAME,"wd")

find_element(By.CLASS_NAME,"s_ipt")

find_element(By.TAG_NAME,"input")

find_element(By.LINK_TEXT,u"新闻")

find_element(By.PARTIAL_LINK_TEXT,u"新")

find_element(By.XPATH,"//*[@class='bg s_btn']")

find_element(By.CSS_SELECTOR,"span.bg s_btn_wr>input#su")

Python+Selenium定位元素的方法的更多相关文章

  1. python+selenium 定位元素的主要方法

    selenium对web各元素的操作首先就要先定位元素,定位元素的方法主要有以下几种: 通过id定位元素:find_element_by_id("id_vaule") 通过name ...

  2. Python Selenium定位元素常用解决办法

       在做web应用的自动化测试时,定位元素是必不可少的,这个过程经常会碰到定位不到元素的情况(报selenium.common.exceptions.NoSuchElementException), ...

  3. selenium定位元素的方法

    1.id定位: find_element_by_id() 从上面定位到的搜索框属性中,有个id="kw"的属性,我们可以通过这个id定位到这个搜索框 代码: # coding = ...

  4. 【selenium学习笔记一】python + selenium定位页面元素的办法。

    1.什么是Selenium,为什么web测试,大家都用它? Selenium设计初衷就是为web项目的验收测试再开发.内核使用的是javaScript语言编写,几乎支持所以能运行javaScript的 ...

  5. python + selenium定位页面元素的办法

    1.什么是Selenium,为什么web测试,大家都用它? Selenium设计初衷就是为web项目的验收测试再开发.内核使用的是javaScript语言编写,几乎支持所以能运行javaScript的 ...

  6. Web自动化基础(一)使用Selenium定位元素

    什么是元素?我们知道网页上有什么内容显示出来,比如一个按钮,一个输入框,一张图片,都可以理解成元素,这些元素是由html代码构成的,比如图片可以用<img>标签来展示,一个输入框可以用&l ...

  7. selenium 定位元素可以用多个findElement

    selenium 定位元素可以用多个findElement,如driver.findElement(By.id"XXX").findElement(By.linkText(XXX) ...

  8. python中列表元素连接方法join用法实例

    python中列表元素连接方法join用法实例 这篇文章主要介绍了python中列表元素连接方法join用法,实例分析了Python中join方法的使用技巧,非常具有实用价值,分享给大家供大家参考. ...

  9. python + selenium 练习篇 - 定位元素的方法

    1.利用ID定位元素(能直接通过ID来定位的元素比较少) # coding=utf-8from selenium import webdriverdriver = webdriver.Chrome() ...

随机推荐

  1. 编写高质量代码改善C#程序的157个建议——建议3: 区别对待强制转型与as和is

    建议3: 区别对待强制转型与as和is 在阐述本建议之前,首先需要明确什么是强制转型,以及强制转型意味着什么.从语法结构上来看,类似下面的代码就是强制转型. secondType = (SecondT ...

  2. whereis libjpeg.so.7

    在服务器上调用import ImageFont时报如下错误 ImportError: The _imagingft C module is not installed (服务器为Centos5.5, ...

  3. HackSix 为ViewGroup的子视图添加悦目的动画效果

    1.默认情况下他,添加到viewGrop的子视图是直接显示出来的.有一个比较简单的方法可以为这个过程增加动画效果. 2.知识点:     给子视图添加动画效果就用:LayoutAnimationCon ...

  4. Linux Linux下安装wine

    Linux下安装wine Linux下安装wine可以从源码编译安装,但一般都觉得麻烦,所以尽量利用yum进行安装,解决很多包的依赖关系. 首先安装一个epel rpm -ivh http://dl. ...

  5. 搭建基于MinGW平台的《OpenGL蓝皮书(OpenGL SuperBibe 5th)》示例代码编译环境

    副标题:搭建基于MinGW平台的<OpenGL超级宝典>(OpenGL蓝皮书第5版)GLTools 编译环境.示例代码:Triangle.cpp @ SB5.zip 以下内容以及方法均参考 ...

  6. 「POJ 2182」 Lost Cows

    题目链接 戳这 题目大意 \(N(2 <= N <= 8,000)\)头奶牛有\(1..N\)范围内的独特品牌.对于每头排队的牛,知道排在那头牛之前的并比那头牛的品牌小的奶牛数目.根据这些 ...

  7. C语言字符串拼接

    1.使用strcat进行字符串拼接 #include <stdio.h> #include <stdlib.h> #include <string.h> int m ...

  8. Object C语法学习笔记(二)

    1.@property与@synthesize配对使用. @property预编译指令的作用是自动声明属性的setter和getter方法. @synthesize 创建了该属性的访问代码 功能:让编 ...

  9. requests库和urllib包对比

    python中有多种库可以用来处理http请求,比如python的原生库:urllib包.requests类库.urllib和urllib2是相互独立的模块,python3.0以上把urllib和ur ...

  10. Python——selenium爬取斗鱼房间信息

    from selenium import webdriver import os import json import time class Douyu: def __init__(self): # ...