Selenium 查找节点
Selenium 可以驱动浏览器完成各种操作,比如填充表单、模拟点击等。比如,我们想要完成向某个输入框输入文字的操作,总需要知道这个输入框在哪里吧?而 Selenium 提供了一系列查找节点的方法,我们可以用这些方法来获取想要的节点,以便下一步执行一些动作或者提取信息。
如下,我们通过右键点击搜索框 --- 检查,提取淘宝页面中搜索框这个节点:


可以看到 id 、name 、class 等属性,那么在 Python 中可以这样来查找节点:
说明:find_element()默认只能获取匹配到第一个节点,而find_elements()可以获取所有节点,以列表的形式返回
from selenium import webdriver
from selenium.webdriver.common.by import By browser = webdriver.Chrome()
browser.get("https://www.taobao.com") input = browser.find_element_by_id("q") # 通过ID属性查找节点
input = browser.find_element_by_name("q") # 通过Name属性查找节点
input = browser.find_element_by_class_name('search-combobox-input-wrap') # 通过Class属性查找节点
input = browser.find_element_by_css_selector("#q") # 通过CSS选择器查找节点
input = browser.find_element_by_xpath("//*[@id='q']") # 通过XPath表达式查找节点 input = browser.find_element(By.ID, "q") # 通过ID属性查找节点
input = browser.find_element(By.NAME, "q") # 通过Name属性查找节点
input = browser.find_element(CLASS_NAME, "search-combobox-input-wrap") # 通过Class属性查找节点
input = browser.find_element(By.CSS_SELECTOR, "q") # 通过CSS选择器查找节点
input = browser.find_element(By.XPATH, "//*[@id='q']") # 通过XPath表达式查找节点
input = browser.find_elements(By.ID, "q") # 通过ID属性查找多个节点
input = browser.find_elements(By.NAME, "q") # 通过Name属性查找多个节点
input = browser.find_elements(CLASS_NAME, "search-combobox-input-wrap") # 通过Class属性查找多个节点
input = browser.find_elements(By.CSS_SELECTOR, "q") # 通过CSS选择器查找多个节点
input = browser.find_elements(By.XPATH, "//*[@id='q']") # 通过XPath表达式查找多个节点 input.send_keys("iPhone") # 找到节点之后就可以进行下一步操作
input.click()
browser.close()
Selenium 查找节点的更多相关文章
- DOM操作 ——如何添加、移除、移动、复制、创建和查找节点等。
		
DOM操作 --如何添加.移除.移动.复制.创建和查找节点等. (1)创建新节点 createDocumentFragment() //创建一个DOM片段 createElement() //创建一个 ...
 - (一)DOM 常用操作 —— “查找”节点
		
在 DOM 树中,如果想要操作一个节点,那么首先要"查找"到这个节点.查找节点的方法由 Document 接口定义,而该接口由 JavaScript 中的 document 对象实 ...
 - javasript 的DOM 节点操作:创建,插入,删除,复制以及查找节点
		
DOM 含义: DOM 是文档对象模型(Document Object Model) 是一种基于浏览器编程的一套API 接口,我W3C 出台推荐的标准.其赋予了JS 操作节点的能力,当网页被加载时,浏 ...
 - JS中的DOM操作怎样添加、移除、移动、复制、创建和查找节点
		
DOM操作怎样添加.移除.移动.复制.创建和查找节点? (1)创建新节点 createDocumentFragment() //创建一个DOM片段 createElement() //创建一个具体的元 ...
 - Dom4j  查找节点或属性
		
Dom4j 查找节点或属性 例如 1 查找下面xml中的student节点的age属性, xpathstr="/students/student/@age"; 2 查找下面xml ...
 - cocoscreator查找节点的方法 (跟jquery find一样)
		
var each = function(object, callback) { var type = (function() { switch (object.constructor) { case ...
 - 手写面试编程题- 数组去重  深拷贝  获取文本节点  设置奇数偶数背景色  JS中检测变量为string类型的方法  第6题闭包  将两个数组合并为一个数组  怎样添加、移除、移动、复制、创建和查找节点?  继承  对一个数组实现随机排序  让元素水平 垂直居中的三种方式  通过jQuery的extend方法实现深拷贝
		
第1题==>实现数组去重 通过 new Set(数组名) // var arr = [12, 12, 3, 4, 5, 4, 5, 6, 6]; // var newarr1 = new Set ...
 - js的DOM节点操作:创建 ,插入,删除,复制,查找节点
		
DOM含义:DOM是文档对象模型(Document Object Model,是基于浏览器编程的一套API接口,是W3C出台的推荐标准.其赋予了JS操作节点的能力.当网页被加载时,浏览器就会创建页面的 ...
 - jQuery中的查找节点、创建节点、插入节点、删除节点、替换节点、复制节点操作方法
		
jQuery操作节点我们可以分六点来讲,查找节点.创建节点.插入节点.删除节点.替换节点.复制节点. 一.查找节点 text() - 设置或返回所选元素的文本内容 ,html() - 设置或返回所 ...
 
随机推荐
- C语言中二维字符数组的定义和初始化
			
本篇日志关于二维字符数组的定义和初始化.我相信这篇文章属于菜鸟级的,高手请直接无视. 一般来说,我们可能会希望定义一个二维字符数组并且在定义的时候就用一些字符串来初始化它.比如说: ][MAX_LEN ...
 - 字符串分隔 ->连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组; •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
			
•连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组:•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理. 输入描述: 连续输入字符串(输入2次,每个字符串长度小于100 ...
 - Selenium常用操作汇总二——如何得到弹出窗口
			
在selenium 1.X里面得到弹出窗口是一件比较麻烦的事,特别是新开窗口没有id.name的时候.当时还整理了处理了几种方法,详见:http://seleniumcn.cn/read.php?ti ...
 - JDBC排序数据实例
			
在本教程将演示如何在JDBC应用程序中,从数据库表中查询数据记录,在查询语句中将使用asc和desc关键字按升序或降序对记录进行排序.在执行以下示例之前,请确保您已经准备好以下操作: 具有数据库管理员 ...
 - unity---各种资源对应的格式
			
我们打包AssetBundle后,Unity3D会根据文件的后缀名将文件转换为特定的类型对象存储起来,我们后期获取时需要根据这些类型取出打包的数据,这里记录下不同后缀文件打包后的类型. 文本格式 支持 ...
 - Visual Studio Code自动识别编码
			
将设置中的"files.autoGuessEncoding"项的值改为true即可. 详情请转知乎:https://www.zhihu.com/question/34415763
 - 软件需求规格说明书(转自http://blog.csdn.net/li_canhui/article/details/6927540)
			
转自http://blog.csdn.net/li_canhui/article/details/6927540 1概述 1.1编写目的 指出编写<需求规格说明书>的目的.下面是示例: 编 ...
 - Python 获取CentOS主机信息
			
Python 获取主机IP地址 #!/usr/bin/env python #coding:utf-8 import os ip=os.popen("ifconfig eth0|grep ' ...
 - HTTP 请求头与请求体 - 某熊的全栈之路 - SegmentFault
			
本文从属于笔者的HTTP 理解与实践系列文章,对于HTTP的学习主要包含HTTP 基础.HTTP 请求头与请求体.HTTP 响应头与状态码.HTTP 缓存这四个部分,而对于HTTP相关的扩展与引申,我 ...
 - recovery中英对照表  recovery大全图解
			
一:Recovery主界面 ---reboot system now 重启手机(刷机完毕选择此项就能重新启动系统) ---apply SDcard:up ...