一、在selenium里面使用什么方法进行元素定位?
1、单个元素定位:find_element
2、多个元素定位:find_elements
二、在selenium里面有7种元素定位方式
1、ID定位:
find_element(By.ID,value)
#示例代码如下:
from selenium import webdriver
import time
driver1 = webdriver.Chrome()
driver1.get('http://www.baidu.com/')
# 根据id定位
driver1.find_element(By.ID,'kw').send_keys('软件测试')
2、name定位:
find_element(By.NAME,value)
#示例代码如下:
from selenium import webdriver
import time
driver1 = webdriver.Chrome()
driver1.get('http://www.baidu.com/')
# 根据name定位
driver1.find_element(By.NAME,'wd').send_keys('软件测试')
3、class定位:
find_element(By.CLASS_NAME,value)
#示例代码如下:
from selenium import webdriver
import time
driver1 = webdriver.Chrome()
driver1.get('http://www.baidu.com/')
# 根据class定位
driver1.find_element(By.NAME,'s_ipt').send_keys('软件测试')
4、tag定位:
find_element(By.TAG,value)
#示例代码如下:
from selenium import webdriver
import time
driver1 = webdriver.Chrome()
driver1.get('http://www.baidu.com/')
# 根据tag定位
# 通过tag_name来定位元素,因为标签不止一个因此常和 find_elements 一起使用
#find_elements 返回的是一个列表,列表内是所有满足条件的元素
driver1.find_element(By.TAG,'a').send_keys('软件测试')
5、link定位:
1)find_element(By.LINK_TEXT,value)
#示例代码如下:
from selenium import webdriver
import time
driver1 = webdriver.Chrome()
driver1.get('http://www.baidu.com/')
#根据超链接的文字进行定位,只能定位链接文本 link_text
driver1.find_element(By.LINK_TEXT,'新闻').click()
2)find_element(By.PARTIAL_LINK_TEXT,value)
#示例代码如下:
from selenium import webdriver
import time
driver1 = webdriver.Chrome()
driver1.get('http://www.baidu.com/')
# 通过超链接的部分文本信息进行定位
driver1.find_element(By.PARTIAL_LINK_TEXT,"新").click()
6、xpath定位:
find_element(By.XPATH,value)
value填值的基本语法如下:
1.基本语法
//标签名[@属性名=属性值]
2.父子层级
//标签名[@属性名=属性值]/子标签名 //标签名[@属性名=属性值]//子标签名
3.索引
//标签名[@属性名=属性值]/子标签名[索引] 注意:索引从1开始
4.模糊匹配
//标签名[contains(@属性名,部分属性值)]
5.多条件匹配
//标签名[@属性1=属性值1 and @属性2=属性值2]
7、css定位:
find_element(By.CSS_SELECTOR,value)
value填值的基本语法如下:
1.基本语法
标签名[属性名=属性值] #id名 .class名
2.父子层级
标签名[属性名=属性值] 子标签 标签名[属性名=属性值]>子标签
3.索引
标签名[属性名=属性值] :nth-child(索引) 标签名[属性名=属性值]>:nth-child(索引)
4.模糊匹配
标签名[属性名*=部分属性值]
5.多条件匹配
标签名[属性名1=属性值1][属性名2=属性值2]