WebDriver 对象有多种方法用于在页面中寻找元素。他们被分成find_element_*和find_elements_*方法。
find_element_*方法返回一个WebElement对象,代表页面中匹配查询的第一个元素。find_elements_*方法
返回WebElement_*对象的列表,包含页面中所有匹配的元素。

使用CSS类name的元素
driver.find_element_by_class_name(name)
driver.find_elements_by_class_name(name)
匹配CSS selector 的元素
driver.find_element_by_css_selector(selector)
driver.find_elements_by_css_selector(selector)
匹配id属性值的元素
driver.find_element_by_id(id)
driver.find_elements_by_id(id)
完全匹配提供的text的<a>元素
driver.find_element_by_link_text(text)
driver.find_elements_by_link_text(text)
包含提供的text的<a>元素
driver.find_element_by_partial_link_text(text)
driver.find_element_by_partial_link_text(text)
匹配name属性值的元素
driver.find_element_by_name(name)
driver.find_elements_by_name(name)
匹配标签name的元素(大小写无关,<a>元素匹配"a"和"A")
driver.find_element_by_tag_name(name)
driver.find_elements_by_tag_name(name)

除了*_by_tag_name()方法,所有方法的参数都是区分大小写的。如果页面上没有元素匹配该方法的要查找的元素,
selenium模块就会抛出NoSuchElement异常。如果你不希望这个异常让程序崩溃,就在代码中添加try和except语句。
一旦有了WebElement对象,就可以读取如下表中的属性,或调用其中的方法,了解他的更多功能。

tag_name 标签名,例如“a”表示<a>元素
get_attribute(name) 该元素name属性的值
text 该元素的文本,例如<span>hello</span>中的“hello”
clear() 对于文本字段或文本区域元素,清楚其中输入的文本
is_display() 如果该元素可见,返回True,否则返回False
is_enable() 对于输入元素,如果该元素启用,返回True,否则返回False
is_selected() 对于复选框或单选框元素,如果该元素被选中,选择True,否则返回False
location 一个字典,包含键“x”和“y”,表示该元素在页面上的位置

from selenium import webdriver

url = "http://www.baidu.com"
driver = webdriver.Firefox()
driver.get(url)
try:
ele = driver.find_element_by_name("kw")
print("Found<%s> element with that class name!"%(ele.text))
except:
print("Was not able to find an element with that name")

这里我们打开FireFox,让它指向一个URL。在这个页面上,我们试图找到带有元素名字的“kw”的元素。如果找到
这样的元素,我们就用text属性将文本值打印出来,如果没有这样的元素,就打印不同的信息。

selenium之元素定位的方法(一)的更多相关文章

  1. selenium之元素定位的方法(二)

    XPath定位是XML Path的缩写,称为XML路径语言,是在XML文档中查找信息的一种语言,可用来再XML文档中对元素和属性进行搜索.XPath使用路径表达式来选取XML文档中的节点或节点集. X ...

  2. [python爬虫] Selenium常见元素定位方法和操作的学习介绍(转载)

    转载地址:[python爬虫] Selenium常见元素定位方法和操作的学习介绍 一. 定位元素方法 官网地址:http://selenium-python.readthedocs.org/locat ...

  3. Selenium Web元素定位方法

    Selenium是用于Web应用测试的自动化测试框架,可以实现跨浏览器和跨平台的Web自动化测试.Selenium通过使用WebDriver API来控制web浏览器,每个浏览器都都有一个特定的Web ...

  4. java selenium (五) 元素定位大全

    页面元素定位是自动化中最重要的事情, selenium Webdriver 提供了很多种元素定位的方法.  测试人员应该熟练掌握各种定位方法. 使用最简单,最稳定的定位方法. 阅读目录 自动化测试步骤 ...

  5. selenium界面元素定位

    一.        Selenium界面元素定位 本文元素定位以das2为例 #导入包 from selenium import  webdriver #打开火狐驱动 driver=webdriver ...

  6. python+selenium遇到元素定位不到的问题,顺便记录一下自己这次的错误(报错selenium.common.exceptions.NoSuchElementException)

    今天在写selenium一个发送邮件脚本时,遇到一些没有找到页面元素的错误.经过自己反复调试,找原因百度,终于解决了.简单总结一下吧,原因有以下几点: 一:Frame控件嵌套,.Frame/Ifram ...

  7. 『心善渊』Selenium3.0基础 — 4、Selenium基础元素定位详解

    目录 1.什么是元素定位 2.Selenium元素定位常用API (1)By_id 定位 (2)by_name 定位 (3)by_class_name 定位 (4)by_tag_name 定位 (5) ...

  8. 《手把手教你》系列技巧篇(八)-java+ selenium自动化测试-元素定位大法之By id(详细教程)

    1.简介 从这篇文章开始,要介绍web自动化核心的内容,也是最困难的部分了,就是:定位元素,并去对定位到的元素进行一系列相关的操作.想要对元素进行操作,第一步,也是最重要的一步,就是要找到这个元素,如 ...

  9. 《手把手教你》系列技巧篇(十四)-java+ selenium自动化测试-元素定位大法之By xpath上卷(详细教程)

    1.简介 按宏哥计划,本文继续介绍WebDriver关于元素定位大法,这篇介绍定位倒数二个方法:By xpath.xpath 的定位方法, 非常强大.  使用这种方法几乎可以定位到页面上的任意元素. ...

随机推荐

  1. 第 45 届国际大学生程序设计竞赛(ICPC)亚洲网上区域赛模拟赛. A.Easy Equation (前缀和/差分)

    题意:RT,给你四个数\(a,b,c,d\),求\(x+y+z=k\)的方案数. 题解:我们可以先枚举\(x\)的值,然后\(x+y\)能取到的范围一定是\([x,x+b]\),也就是说这个区间内每个 ...

  2. rabbitmq学习二

    rabbitmq的六种工作模式: 这里简单介绍下六种工作模式的主要特点: 简单模式:一个生产者,一个消费者 work模式:一个生产者,多个消费者,每个消费者获取到的消息唯一. 订阅模式:一个生产者发送 ...

  3. 列表解析式 -- Python

    列表解析的语法:[expr for iter_var in iterable], 它迭代iterable对象的所有条目.其中的expr应用于序列的每个成员,最后的结果值是该表达式产生的列表,迭代变量并 ...

  4. Zabbix + Grafana 可视化

    Zabbix 自定义图形 Zabbix 自带图形 Zabbix 图形树安装 # 1.上传 [root@zabbix ~]# cd /usr/share/zabbix [root@zabbix zabb ...

  5. Ubuntu 下更改pip源使用清华源

    一.新建目录 sudo -s mkdisk ~./pip vim ~./pip/pip.conf 二.复制下面代码,并保存 [global] index-url = https://pypi.tuna ...

  6. gradle中的build script详解

    目录 简介 project和task 一个例子 task详细讲解 task脚本 task依赖 动态task 默认task build script的外部依赖 gradle中的build script详 ...

  7. markdown table collapse span

    markdown table collapse span refs xgqfrms 2012-2020 www.cnblogs.com 发布文章使用:只允许注册用户才可以访问! 原创文章,版权所有️x ...

  8. MBP 屏幕分辨率 All In One

    MBP 屏幕分辨率 All In One screen size bug https://stackoverflow.com/questions/65462643/how-to-get-the-rea ...

  9. CSS 检测 IE 浏览器

    CSS 检测 IE 浏览器 <!--[if IE]> <link href="ie.css" rel="stylesheet"> < ...

  10. deep copy & deep merge

    deep copy & deep merge JSON.parse(JSON.stringify(obj)); lodash https://lodash.com/docs/ https:// ...