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. (转)基于MVC4+EasyUI的Web开发框架形成之旅--界面控件的使用

    原文地址:http://www.cnblogs.com/wuhuacong/p/3317223.html 在前面介绍了两篇关于我的基于MVC4+EasyUI技术的Web开发框架的随笔,本篇继续介绍其中 ...

  2. 编写高质量代码改善C#程序的157个建议——建议50:在Dispose模式中应区别对待托管资源和非托管资源

    建议50:在Dispose模式中应区别对待托管资源和非托管资源 真正资源释放代码的那个虚方法是带一个bool参数的,带这个参数,是因为我们在资源释放时要区别对待托管资源和非托管资源. 提供给调用者调用 ...

  3. 【leetcode】Move Zeroes

    Move Zeroes 题目: Given an array nums, write a function to move all 0‘s to the end of it while maintai ...

  4. spring的一些配置和重要的接口和类

    spring的配置文件 通常是applicationContext.xml(具体的bean配置会在后面内容中详解) setter方法注入: <property name=“” value=“ja ...

  5. python 读取mysql存储的文件路径下载文件,内容解析,上传七牛云,内容入es

    #!/usr/bin/env python # -*- coding: utf-8 -*- import ConfigParser import json import os import re fr ...

  6. c++基础知识篇:指针

    从面试的反馈来看,这部分可以问的很难. 1.指针与引用的区别 指针是一个变量,用来存放地址的变量.引用是原来变量的存储空间的别名.   2.指针作为参数的要点 a.需要进行指针的合法性检验,防止空指针 ...

  7. JS 换行写法

    var populatePullUpHtml = function (id) { var html = '<div id="' + id + '" class="' ...

  8. Expression表单式树

    余于项目中逢Expression(表达式树),然今未明其用途也,记之以温. using System; using System.Collections.Generic; using System.L ...

  9. 关于nosql的讲解

    Data Base  关于nosql的讲解 nosql非关系型数据库. 优点: 1.可扩展 2.大数据量,高性能 3.灵活的数据模型 4.高可用 缺点: 1.不正式 2.不标准 非关系型数据库有哪些: ...

  10. 有大佬拉我一把麽,现在广州还有c++后台实习招聘麽

    有大佬拉我一把麽,现在广州还有c++后台实习招聘麽