Python + Selenium 元素定位方法归纳
【1】介绍:WebDriver 属于 Selenium 体系中设计出来操作浏览器的一套API,支持多种编程语言
【2】WebDriver 提供了八种元素定位方法,在Python语言中,所定位的方法如下:
【3】id 定位
from selenium import webdriver driver = webdriver.Chrome() driver.get("http://baidu.com") driver.find_element_by_id("kw").send_keys("selenium 配置") driver.find_element_by_id("su").submit() print("成功根据百度搜索框的ID搜索关键字") driver.quit()
【4】name 定位
from selenium import webdriver driver = webdriver.Chrome() driver.get("http://baidu.com") driver.find_element_by_name("wd") print("我通过name方法定位到百度页的搜索框") driver.quit()
【5】class 定位
元素class属性。Class 主要用来元素进行分组,并对这一级元素设置相同的样式。所以Class属性在当前HTML页面中,也不能唯一定位到一个元素
from selenium import webdriver driver = webdriver.Chrome() driver.get("http://baidu.com") driver.find_element_by_class_name("s_ipt").send_keys("自动化测试") driver.find_element_by_class_name("btn self-btn bg s_btn").click() driver.quit()
【6】tag name 定位
from selenium import webdriver driver = webdriver.Chrome() driver.get("http://baidu.com") driver.find_element_by_tag_name("input") driver.quit()
【7】link text 定位
from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window() driver.implicitly_wait(1) driver.get("http://baidu.com") try: driver.find_element_by_link_text("新闻").click() print("test pass:element found by link text") except Exception as e: print("Exception found",format(e)) driver.quit()
【8】partial link text 定位
from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window() driver.implicitly_wait(1) driver.get("http://baidu.com") try: driver.find_element_by_partial_link_text("新").click() print("test pass:element found by link text") except Exception as e: print("Exception found",format(e)) driver.quit()
【9】XPath 定位:
Xpath 定位是将整个html 看成一个树形结构。Html 节点为根节点。页面当中节点与其他节点可以有祖先、父辈、兄弟、后代这样的关系存在
提醒:Chrome 的插件XPath Helper ,可定位XPath 跟CSS Selector ,不推荐使用,是用绝对路径定位
1)绝对定位 洗:以单斜杠(/)开头,不推荐使用这种方式,页面元素一点发生改变,绝对路径就会失效,一层层定位效率也低。
2)相对定位以双斜杠(//)开头,可通过元素本身的特征(标签名、属性)定位
3)使用标签名+节点属性定位
语法: //标签名[@属性名=值]
4)组合元素索引(下标)定位:不推荐,下标容易发生变化
例子://li[@class=‘I’][2]//img
5)通过部分属性值匹配
语法://标签名[contains(@属性名,部分属性值)]
例子://img[contains(@src,‘288551_nvsc_1182.jpg’)]
6)使用文本内容匹配
函数;text()
文本全部匹配:text()=文本内容
文本部分匹配:contains(text(),部分文本内容)
例子:
文本全匹配://h2[text()=‘软件测试从零开始’]
文本部分匹配://h2[contains(text(),‘从零开始’)]
7)使用轴定位表达式:麻烦不易理解,不推荐使用
from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window() driver.implicitly_wait(1) driver.get("http://baidu.com") try: driver.find_element_by_xpath("//*[@id='kw']").send_keys("XPath插件安装") driver.find_element_by_xpath("//*[@id='su']").click() driver.implicitly_wait(20) print("test pass:element found by link text") except Exception as e: print("Exception found", format(e)) driver.quit()
【10】css selector 定位
from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window() driver.implicitly_wait(1) driver.get("http://baidu.com") try: driver.find_element_by_css_selector("#kw").send_keys("XPath插件安装") driver.find_element_by_css_selector("#su").click() print("test pass:element found by link text") except Exception as e: print("Exception found", format(e)) driver.quit()
【11】查找多个元素
当我们想在页面中找到一组元素,比如说当前页面当中的所有连接
Selenium 提供了一个方法用来定位一组元素:
Find_elements_by_name(class_name/xpath/tag_name/css/link_text/partial_link_text)
此函数的返回结果为一个列表,列表中存储的是符合定位表达式的所有元素
注意区别:element 有个s
【12】用By 定位元素
统一调用find_element()方法,通过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,"新闻") find_element(By.PARTIAL_LINK_TEXT,"新") find_element(By.XPATH,"//*[@class='bg s_btn']")
- [python爬虫] Selenium常见元素定位方法和操作的学习介绍
- [python爬虫] Selenium常见元素定位方法和操作的学习介绍
- 1、python3+selenium之常见的页面元素定位方法
- [python爬虫] Selenium常见元素定位方法和操作的学习介绍
- Python selenium根据class定位页面元素的方法
- selenium(python)定位(查找)元素的方法小结
- Python使用Selenium测试WebApp在定位元素和使用元素属性报的莫名其妙错误的终极解决方法
- python+selenium 定位元素异常类型及解决方法
- selenium+python 元素定位方法
- Selenium常见元素定位方法和操作的学习介绍-python爬虫
- selenium python (二) 元素定位方法
- Python+Selenium xpath 定位遇到相同元素时的解决方法父节点找子节点
- Python+Selenium的元素定位方法(xpath)
- Python+Selenium练习-元素定位八种方法及实例
- [python爬虫] Selenium常见元素定位方法和操作的学习介绍
- python+selenium 定位到元素,无法点击的解决方法
- selenium元素定位方法(单元素操作)
- selenium python 常用命令---元素定位 休眠
- Selenium示例集锦--常见元素识别方法、下拉框、文本域及富文本框、鼠标操作、一组元素定位、弹窗、多窗口处理、JS、frame、文件上传和下载
- selenium元素定位方法