Python2+Selenium入门03-元素定位
当我们想让 Selenium 自动地操作浏览器时,就必须告诉 Selenium 如何去定位某个元素或一组元素,每个元素都有着不同的标签名和属性值,Selenium 提供了以下8种定位元素的方式,每种方式对应了2个方法:
find_element_by_( ),是用来定位单个元素的,find_elements_by_( ),是用来定位多个元素的。
- 通过 id 定位
- 通过 name 定位
- 通过 class 定位
- 通过 tag 定位
- 通过 link 定位
- 通过 partial link 定位
- 通过 xpath 定位
- 通过 css 选择器定位
下面以百度首页为例进行举例说明:
1.通过 id 定位
find_element_by_id(id)
find_elements_by_id(id)
# _*_ coding:utf-8 _*_
from selenium import webdriverdriver = webdriver.Chrome()
driver.maximize_window()
driver.get("https://www.baidu.com/")
# 定位id为“kw”的元素
input_text = driver.find_element_by_id("kw")
input_text.send_keys("selenium")driver.quit()
2.通过通过 name 定位
find_element_by_name(name)
find_elements_by_name(name)
# _*_ coding:utf-8 _*_
from selenium import webdriverdriver = webdriver.Chrome()
driver.maximize_window()
driver.get("https://www.baidu.com/")
# 定位name为“wd”的元素
input_text = driver.find_element_by_name("wd")
input_text.send_keys("selenium")driver.quit()
3.通过 class 定位
find_element_by_class_name(name)
find_elements_by_class_name(name)
# _*_ coding:utf-8 _*_
from selenium import webdriverdriver = webdriver.Chrome()
driver.maximize_window()
driver.get("https://www.baidu.com/")
# 定位class名称为“s_ipt”的元素
input_text = driver.find_element_by_class_name("s_ipt")
input_text.send_keys("selenium")driver.quit()
4.通过 tag 定位
find_element_by_tag_name(name)
find_elements_by_tag_name(name)
# _*_ coding:utf-8 _*_
from selenium import webdriverdriver = webdriver.Chrome()
driver.maximize_window()
driver.get("https://www.baidu.com/")
# 定位标签为<input>的元素
input_text = driver.find_elements_by_tag_name("input")
print(len(input_text))driver.quit()
5.通过 link 定位
find_element_by_link_text(link_text)
find_elements_by_link_text(link_text)
# _*_ coding:utf-8 _*_
from selenium import webdriverdriver = webdriver.Chrome()
driver.maximize_window()
driver.get("https://www.baidu.com/")
# 定位链接文本完全匹配“我新闻”的元素
news = driver.find_element_by_link_text("新闻")
news.click()driver.quit()
6.通过 partial link 定位
find_element_by_partial_link_text(link_text)
find_elements_by_partial_link_text(link_text)
# _*_ coding:utf-8 _*_
from selenium import webdriverdriver = webdriver.Chrome()
driver.maximize_window()
driver.get("https://www.baidu.com/")
# 定位链接文本部分匹配“新”的元素
news = driver.find_element_by_partial_link_text("新")
news.click()driver.quit()
7.通过 xpath 定位
find_element_by_xpath(xpath)
find_elements_by_xpath(xpath)
# _*_ coding:utf-8 _*_
from selenium import webdriverdriver = webdriver.Chrome()
driver.maximize_window()
driver.get("https://www.baidu.com/")
# xpath定位,相对路径与属性结合定位搜索框
news = driver.find_element_by_xpath("//input[@id='kw']")
news.click()driver.quit()
8.通过 css 选择器定位
find_element_by_css_selector(css_selector)
find_elements_by_css_selector(css_selector)
# _*_ coding:utf-8 _*_
from selenium import webdriverdriver = webdriver.Chrome()
driver.maximize_window()
driver.get("https://www.baidu.com/")
# css选择器,id定位密码输入框
news = driver.find_element_by_css_selector('#kw')
news.click()driver.quit()
这里只是简单介绍了8种元素定位方式的使用,比较简单易用的是通过id、name、class定位,我个人比较喜欢的是用xpath定位,当然,最灵活也是最强大的定位方式就是css,它也是比较难掌握的一种方式。关于xpath和css定位方式的详细介绍,可以参考
selenium 元素定位。
Python2+Selenium入门03-元素定位相关推荐
- 【转载】selenium webdriver进行元素定位
原文:http://www.cnblogs.com/qingchunjun/p/4208159.html 在使用selenium webdriver进行元素定位时,通常使用findElement或fi ...
- Selenium自动化测试-3.元素定位(3)
------·今天距2020年81天·------ 这是ITester软件测试小栈第55次推文 大家好 我是vivi小胖虎 前面已经介绍过7种元素定位方法 相信这些积攒堆积起来的技巧 都会在实际工作时 ...
- Selenium自动化测试-3.元素定位(2)
------·今天距2020年82天·------ 这是ITester软件测试小栈第54次推文 大家好 我是vivi小胖虎 今天我们学习xpath定位元素 如果你告诉我 不是你不想用selenium做 ...
- 使用selenium webdriver进行元素定位
在使用selenium webdriver进行元素定位时,通常使用findElement或findElements方法结合By类返回的元素句柄来定位元素.其中By类的常用定位方式共八种,现分别介绍如下 ...
- Python+selenium自动化八大元素定位方法及实例(超详细)
目录 一.selenium模块中的find_element_by_id方法无法使用 二.Python+selenium自动化八大元素定位方法 使用场景: 1.通过id属性定位:driver.find_ ...
- python网页元素定位_用Selenium进行网页元素定位以及常用的定位元素的方法
用Selenium进行网页元素定位 一.前提条件: 下载.安装Selenium 二.编写定位网页元素的脚本(这里以定位百度网页的元素举例) 1.新建文本文档(可以用任意的文本编辑器,我这里用的是Pyc ...
- python selenium 元素定位_python3+selenium入门04-元素定位
我们在对浏览界面做操作时,比如点击按钮,搜索框输入内容.都需要把鼠标挪过去,然后再点击,或者输入内容.在selenium操作时也是一样的.需要先对元素进行定位,然后才能进行操作.可以借助浏览器的开发者 ...
- 大型情感剧集Selenium:3_元素定位 #华为云·寻找黑马程序员#
关于昨天的文章 今天有朋友反馈,代码运行的时候,selenium提示警告 DeprecationWarning: use options instead of chrome_options drive ...
- 【RPA自动化】selenium教程_元素定位及表格读取
一.selenuim安装 下载selenium浏览器驱动,将msedgedriver.exe文件放入Python的安装路径下. edge下载路径:Microsoft Edge Driver - Mic ...
最新文章
- 更高效的PacBio长read纠错算法的研究
- vue-router2路由参数注意问题
- cesium鼠标控制键盘_用 Python 控制 鼠标和键盘,花式操作
- 自信息跟信息熵的区别
- java 以一个最高有效位为1的二进制数字开始_第02章 Java编程基础
- 大白话5分钟带你走进人工智能-第二十六节决策树系列之Cart回归树及其参数(5)...
- 深入理解const char*p,char const*p,char *const p,const char **p,char const**p,char *const*p,char**const
- 了解一下Elasticsearch的基本概念
- backtrader2
- 树莓派和微信和服务器,用树莓派搭建微信公共平台
- ReactJs 高级篇一 Context 使用
- 小米路由器mini 刷潘多拉固件教程
- Vue中解决数据量过大导致页面崩溃;解决方案
- 在电脑上微信无法语音聊天,微信听不到语音声音
- instagram获取图片地址和视频地址
- Win10安装Ubuntu18.04
- python如何读取log文件_怎么解决Python读取log文件时报错
- 计算机基础为什么要学word,计算机基础中word教学探讨
- Halcon算子说明
- informix GBase -179 ISAM error: No free disk space for sort.