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. (转)Web API 强势入门指南

    原文地址:http://www.cnblogs.com/developersupport/p/aspnet-webapi.html Web API是一个比较宽泛的概念.这里我们提到Web API特指A ...

  2. Sort函数(C++)

    原创 C++中内置了sor函数供排序,函数原型为: #include<algorithm> //所属头文件 sort(begin,end,cmp); //其中cmp参数可以省略,省略后默认 ...

  3. Fragment基本介绍

    1.生命周期 onCreateView() :创建视图 onActivityCreate():activity创建完成的时候调用 onDestoryView():销毁视图 onDetach():与ac ...

  4. Job-Show Liang,你来掌管诺基亚王国,可好?

    保留我一向高大上风格,开头当然来一个段子 在即将到来MWC(Mobile World Congress缩写,世界移动通信大会),很高兴能听到小诺来参展,我不得不给它32个赞,因为小诺已经好几届没有浮头 ...

  5. c#帮助类:发送邮件

    private static string IsOpenSendMail = ConfigurationManager.AppSettings["IsOpenSendMail"]; ...

  6. C#转java

    懂C#的话,转Java也不是那么难,毕竟,语言语法还是相似的.尝试了下Java,说说自己的体会吧. 一,Java和C#都是完全面向对象的语言.在面向对象编程的三大原则方面,这两种语言接近得不能再接近. ...

  7. WPF 控件库——轮播控件

    WPF 控件库系列博文地址: WPF 控件库——仿制Chrome的ColorPicker WPF 控件库——仿制Windows10的进度条 WPF 控件库——轮播控件 WPF 控件库——带有惯性的Sc ...

  8. .NET Core Api 集成 swagger

    废话不多讲 第一步  当然是要通过 NuGet 安装第三方插件 swagger 程序包管理器控制台,安装命令:Install-Package Swashbuckle.AspNetCore -Pre 第 ...

  9. 十七、创建一个 WEB 服务器(一)

    1.Node.js 创建的第一个应用 var http=require("http") http.createServer(function (req,res) { res.wri ...

  10. 实现求解线性方程(矩阵、高斯消去法)------c++程序设计原理与实践(进阶篇)

    步骤: 其中A是一个n*n的系数方阵 向量x和b分别是未知数和常量向量: 这个系统可能有0个.1个或者无穷多个解,这取决于系数矩阵A和向量b.求解线性系统的方法有很多,这里使用一种经典的方法——高斯消 ...