元素定位方法

Posted like1824

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了元素定位方法相关的知识,希望对你有一定的参考价值。

element:只返回匹配到的第一个元素,且找不到就报错

方法一:通过id属性定位

‘‘‘
#
通过id属性定位
textElement = driver.find_element_by_id(‘abc‘)
#获取元素文本值,text获取的是标签对中间的值
print(textElement.text)
‘‘‘

方法二:通过name属性定位

‘‘‘
#
通过name属性定位
inp_Element = driver.find_element_by_name(‘a1‘)
inp_Element.send_keys(‘孔雀东南飞‘)
‘‘‘

 

方法三:通过xpath定位

‘‘‘
#通过xpath定位,不展示在界面上的元素不能直接操作
option_Element = driver.find_element_by_xpath(‘/html/body/div/select/option[3]‘)
print(option_Element.text)
‘‘‘

方法四:通过链接文本定位

‘‘‘
#
通过链接文本定位
ele = driver.find_element_by_link_text(‘访问百度‘)
ele.click()
‘‘‘

方法五:通过部分链接文本定位

‘‘‘
#
通过部分链接文本定位
driver.find_element_by_partial_link_text(‘百度‘).click()
‘‘‘

方法六:通过标签名称查找

‘‘‘
#
通过标签名称进行匹配查找
ele = driver.find_element_by_tag_name(‘span‘)
print(ele.text)
‘‘‘

方法七:根据class名称查找

‘‘‘
#
根据class名称进行查找
ele = driver.find_element_by_class_name(‘a2‘)
print(ele.text)
‘‘‘

复合类:包含空格的属性值,查找时任意找一个即可

方法八:通过css查找器查找

‘‘‘
#
通过css选择器查找
ele = driver.find_element_by_css_selector(‘body > div:nth-child(8) > table > tbody > tr:nth-child(2) > td‘)
print(ele.text)
‘‘‘

 

匹配元素列表

elements:返回匹配列表,找不到就返回空列表

 

‘‘‘
#
通过标签名称进行匹配查找
eleSli = driver.find_elements_by_tag_name(‘p‘)
for ele in eleSli:
    print(ele.text)
‘‘‘

 

另一种元素定位的方式By

from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get(‘file:///D:/py/test1.html‘)
ele = driver.find_element(By.ID,‘abc‘)
print(ele.text)
ele = driver.find_element(By.NAME,‘a1‘)
print(ele.text)

 

以上是关于元素定位方法的主要内容,如果未能解决你的问题,请参考以下文章

Selenium Xpath元素无法定位 NoSuchElementException: Message: no such element: Unable to locate element(代码片段

如何使绝对定位的元素响应?

Android片段布局完成膨胀

sellenium页面元素的定位方法

[ jquery 文档处理 insertBefore(content) before(content|fn) ] 此方法用于把所有匹配的元素插入到另一个指定的元素元素集合的前面,实现外部插入(代码片段

Selenium基础篇之八大元素定位方式