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 查找节点的更多相关文章

  1. DOM操作 ——如何添加、移除、移动、复制、创建和查找节点等。

    DOM操作 --如何添加.移除.移动.复制.创建和查找节点等. (1)创建新节点 createDocumentFragment() //创建一个DOM片段 createElement() //创建一个 ...

  2. (一)DOM 常用操作 —— “查找”节点

    在 DOM 树中,如果想要操作一个节点,那么首先要"查找"到这个节点.查找节点的方法由 Document 接口定义,而该接口由 JavaScript 中的 document 对象实 ...

  3. javasript 的DOM 节点操作:创建,插入,删除,复制以及查找节点

    DOM 含义: DOM 是文档对象模型(Document Object Model) 是一种基于浏览器编程的一套API 接口,我W3C 出台推荐的标准.其赋予了JS 操作节点的能力,当网页被加载时,浏 ...

  4. JS中的DOM操作怎样添加、移除、移动、复制、创建和查找节点

    DOM操作怎样添加.移除.移动.复制.创建和查找节点? (1)创建新节点 createDocumentFragment() //创建一个DOM片段 createElement() //创建一个具体的元 ...

  5. Dom4j 查找节点或属性

    Dom4j  查找节点或属性 例如 1 查找下面xml中的student节点的age属性, xpathstr="/students/student/@age"; 2 查找下面xml ...

  6. cocoscreator查找节点的方法 (跟jquery find一样)

    var each = function(object, callback) { var type = (function() { switch (object.constructor) { case ...

  7. 手写面试编程题- 数组去重 深拷贝 获取文本节点 设置奇数偶数背景色 JS中检测变量为string类型的方法 第6题闭包 将两个数组合并为一个数组 怎样添加、移除、移动、复制、创建和查找节点? 继承 对一个数组实现随机排序 让元素水平 垂直居中的三种方式 通过jQuery的extend方法实现深拷贝

    第1题==>实现数组去重 通过 new Set(数组名) // var arr = [12, 12, 3, 4, 5, 4, 5, 6, 6]; // var newarr1 = new Set ...

  8. js的DOM节点操作:创建 ,插入,删除,复制,查找节点

    DOM含义:DOM是文档对象模型(Document Object Model,是基于浏览器编程的一套API接口,是W3C出台的推荐标准.其赋予了JS操作节点的能力.当网页被加载时,浏览器就会创建页面的 ...

  9. jQuery中的查找节点、创建节点、插入节点、删除节点、替换节点、复制节点操作方法

    jQuery操作节点我们可以分六点来讲,查找节点.创建节点.插入节点.删除节点.替换节点.复制节点. 一.查找节点 text() - 设置或返回所选元素的文本内容   ,html() - 设置或返回所 ...

随机推荐

  1. R语言文件相关的操作

    1. 文件系统介绍 R语言对文件系统的操作,包括文件操作和目录操作,函数API都定义在base包中. 2. 目录操作 2.1 查看目录 查看当前目录下的子目录. # 启动R程序 ~ R # 当前的目录 ...

  2. Sword redis补充

    Redis 键(key) Redis 键命令用于管理 redis 的键. redis任何数据类型都有key --删除key的命令 redis> del key Redis 事务 Redis 事务 ...

  3. C++头文件的工作原理

    一.C++编译模式通常,在一个C++程序中,只包含两类文件——.cpp文件和.h文件.其中,.cpp文件被称作C++源文件,里面放的都是C++的源代码:而.h文件则被称作C++头文件,里面放的也是C+ ...

  4. Numpy的array数组和标量之间的运算

    矢量化 数组很重要,因为它使你不用编写循环即可对数据执行批量运算.这通常就叫做矢量化(vectorzation) 数组与数组的运算 数组与标量的算术运算

  5. GRUB——系统的引导程序简单介绍

    这几天对于操作系统是如何引导启动的特征的感兴趣,已经到了不能自拔的状态了,所以索性好好了解一下: 前面已经说过了,MBR对于系统启动的重要性,这是不多啰嗦:  现在介绍一个 grub ,启动管理器,它 ...

  6. zend framework分析总结[转]

    版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版.作者信息和本声明.否则将追究法律责任.http://blog.csdn.net/mayongzhan - 马永占,myz,may ...

  7. 用不上索引的SQL语句

    下面介绍六种建立索引后不起作用的sql语句. 1.使用不等于操作符(<>, !=) SELECT * FROM dept WHERE staff_num <> 1000; × ...

  8. The required Server component failed to start so Tomcat is unable to start问题解决

    问题出现: Server Tomcat v8.5 Server at localhost failed to start.  或者The required Server component faile ...

  9. aspose.word 使用简单方法

    aspose.word使用简单方法 概念介绍 使用aspose生成word报表步骤: 加载word模板 提供数据源 填充 加载模板 提供了4种重载方法 1 2 3 4 5 public Documen ...

  10. Linux基础网络设置

    查看Linux网络参数 ifconfig—-查看网络接口 > [root@localhost ~]# ifconfig eth1 Link encap:Ethernet HWaddr 00:0C ...