selenium 元素定位的入门方法

目录

1.​​​​什么是元素定位

2.元素定位的基础方法

1.根据id定位

2.根据name定位

3.根据class定位

4.根据tag_name来定位

通过tag_name来定位元素标签不止一个,因此常和 find_elements 一起使用find_elements 返回的是一个列表,列表内是所有满足条件的元素

5.根据超链接的文字进行定位,只能定位链接文本

6.通过超链接的部分文本信息进行定位

3.Xpath元素定位方式

1.根据标签+属性定位

2.根据层级定位

3.根据索引定位

4.模糊匹配

5.多条件查找

4.css元素定位方式

1.根据标签+属性定位

2.根据id定位

3.根据class定位

4.模糊匹配

5.多条件匹配


1.​​​​什么是元素定位

元素定位就是查找HTML 元素的过程.

HTML 元素指的是从开始标签(start tag)到结束标签(end tag)的所有代码。

操作页面元素之前,首先要对元素进行定位,所以定位是自动化脚本编写的开始。

通常使用find_element或find_elements方法来定位元素。

1、find_element使用给定的方法定位和查找一个元素

2、find_elements使用给定的方法定位和查找所有元素list

3、先在python写入以下代码

# 1.导入selenium里面的webdriver
from selenium import webdriver

# 2.实例化了一个浏览器对象
driver = webdriver.Chrome()

# 3.通过对象里面的get方法打开百度网页
driver.get('http://www.baidu.com')

2.元素定位的基础方法

1.根据id定位

# 通过id定位到百度搜索框
ele = driver.find_element_by_id('kw')

2.根据name定位

# 根据name定位
# driver.find_element_by_name('wd')

3.根据class定位

# 根据class定位
# driver.find_element_by_class_name('s_ipt')

4.根据tag_name来定位

通过tag_name来定位元素标签不止一个,因此常和 find_elements 一起使用find_elements 返回的是一个列表,列表内是所有满足条件的元素

# 根据tag_name来定位
driver.find_elements_by_tag_name('a')

5.根据超链接的文字进行定位,只能定位链接文本

# 根据超链接的文字进行定位,只能定位链接文本   
driver.find_element_by_link_text('新闻')

6.通过超链接的部分文本信息进行定位

# 通过超链接的部分文本信息进行定位
driver.find_element_by_partial_link_text("新")

3.Xpath元素定位方式

XPath (XML Path Language) 是一门在 XML 文档中查找信息的语言,可用来在 XML 文档中对元素和属性进行遍历。HTML是标准的XML,所以HTML也可以使用XPath

/:表示从根目录开始  
//:表示从相对路径开始
@:表示选取属性

1.根据标签+属性定位

# 标签+属性进行xpath定位
# 定位百度首页的输入框标签
driver.find_element_by_xpath('//input[@autocomplete="off"]')

2.根据层级定位

# 层级定位
driver.find_element_by_xpath('//form[@action="/s"]/input')

3.根据索引定位

# 索引定位
# 定位百度的input标签
driver.find_element_by_xpath('//form[@action="/s"]/input[2]')

4.模糊匹配

# 模糊匹配
# 定位百度首页的logo标签
driver.find_element_by_xpath('//a[contains(@id,"result_")]')

5.多条件查找

# 多条件查找
# 定位百度的input标签
driver.find_element_by_xpath('//input[@type="hidden" and @name="rn"]')

4.css元素定位方式

CSS(Cascading Style Sheets)是一种语言,它被用来描述HTML 和XML 文档的表现。CSS 使用选择器来为页面元素绑定css属性。Selenium官网的Document里极力推荐使用CSS locator,而不是XPath来定位元素,原因是CSS locator比XPath locator速度快,特别是在IE下比XPath更高效更准确更易编写,对各种浏览器支持也很好。

先在python写入以下代码

from selenium import webdriver

from selenium.webdriver.common.by import By

driver = webdriver.Chrome()

driver.get("http://www.baidu.com")

1.根据标签+属性定位

# 根据标签+属性定位
driver.find_element_by_css_selector('input[id="kw"]')

2.根据id定位

# 根据id定位
driver.find_element_by_css_selector('#kw')

3.根据class定位

# 根据class定位
driver.find_element_by_css_selector('.s_ipt')

4.模糊匹配

# 模糊匹配
driver.find_element_by_css_selector('input[autocomplete*="of"]')

5.多条件匹配

# 多条件匹配
driver.find_element_by_css_selector('input[type="hidden"][name="f"]')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值