八种定位方式分别是:id、name、class name、tag name 、link text、partial link textxpath、css selector。
元素标签或者元素属性:id、name、class name、tag name
元素超链接文本定位:link text、partial link textxpath
元素路径定位:xpath(绝对路径、相对路径)
元素样式定位:css selector
1、ID定位
- 说明:id定位就是通过元素的id值进行定位,在一份标准的html页面中,每个id都是唯一的,id定位是最方便一种定位方式
- 用法:driver.find_element(By.ID,'id')
- 示例:以打开百度搜索框,输入"selenium"为例子
from selenium import webdriver
from selenium.webdriver.common.by import By
dri = webdriver.Chrome()
dri.get('https://www.baidu.com/')
dri.find_element(By.ID, 'kw').send_keys('selenium')
2、NAME定位
- 说明:HTML文档用来name指定元素名称,name属性在HTML文档中可以不是唯一的,name定位就是根据元素的name值进行元素定位
- 用法:driver.find_element(By.NAME,'name')
- 以打开百度搜索框,输入"selenium"为例子
from selenium import webdriver
from selenium.webdriver.common.by import By
dri = webdriver.Chrome()
dri.get('https://www.baidu.com/')
dri.find_element(By.NAME, 'wd').send_keys('selenium')
3、CLASS_NAME定位
- 说明:HTML文档用class_name指定元素的类名,class定位就是通过class属性来定位,有的元素没有class属性
- 用法:driver.find_element(By.CLASS_NAME,'class_name')
- 以打开百度搜索框,输入"selenium"为例子
from selenium import webdriver
from selenium.webdriver.common.by import By
dri = webdriver.Chrome()
dri.get('https://www.baidu.com/')
dri.find_element(By.CLASS_NAME, 's_ipt').send_keys('selenium')
4、TAG_NAME定位
- 说明:HTML即超文本标记语言,实际上HTML文档就是一个一个标签(tag)组成,因此这种定位方式就是通过标签名进行定位,但是由于这种定位方式较为低效率,一般不使用
- 用法:driver.find_element(By.TAG_NAME,'tag_name')
5、LINK_TEXT定位
- 说明:与前面几个不同,link_text是用来专门定位超链接文本的
- 用法:driver.find_element(By.LINK_TEXT,'link_text')
- 以打开百度搜索框,点击”hao123“为例子
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
dri = webdriver.Chrome()
dri.get('https://www.baidu.com/')
time.sleep(2)
dri.find_element(By.LINK_TEXT, 'hao123').click()
6、PARTIAL_LINK_TEXT
- 说明:partial_link_text对于 link_text就相当于模糊查询和精准查询的关系
- 用法:driver.find_element(By.PARTIAL_LINK_TEXT,'partial_link_text')
- 以打开百度搜索框,点击”hao123“为例子
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
dri = webdriver.Chrome()
dri.get('https://www.baidu.com/')
time.sleep(2)
dri.find_element(By.PARTIAL_LINK_TEXT, 'hao').click()
7、XPATH定位
- xpath定位是 xml path的简称,是一种用来确定xml文档中某部分位置的语言
- HTML文档可以看作是XML的一种实现方式,因此在selenium中,xpath定位也成为常用的且准确性极高的定位方式,它的定位方式也非常灵活。可以使用路径定位、元素属性定位、层级与属性定位
- 定位用法:driver.find_element(By.XPATH, 'xpath')
- 以打开百度搜索框,输入”selenium“为例
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
dri = webdriver.Chrome()
dri.get('https://www.baidu.com/')
time.sleep(2)
dri.find_element(By.XPATH, '//*[@id="kw"]').send_keys("seleenium")
8、CSS_SELECTOR定位
- css(Cascading Style Sheets)是一种语言,它用来描述HTML和XML的元素显示样式。
- css语言中有css选择器,在selenium中也可以使用这种选择器来进行元素定位。
- css定位方式相较于xpath速度更快,语言也很强大
- css定位语法:driver.find_element(By.CSS_SELECTOR, 'css')
版权归原作者 感谢信收割机 所有, 如有侵权,请联系我们删除。