四.Python+Selenium自动化测试系列:八大元素定位、元素的基本操作

本文详细介绍了Selenium库中八大元素定位方法,包括ID、CSS选择器、Class、Name、Link Text、Partial Link Text、Tag Name和XPath,并提供了实际示例。同时,讲解了元素的基本操作,如点击、输入、清除、获取属性和位置等。通过实例展示了如何在Python环境下使用Selenium进行网页元素的定位和交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、八大元素定位:

定位器 Locator

描述

class name

定位class属性与搜索值匹配的元素(不允许使用复合类名)

css selector

定位 CSS 选择器匹配的元素

id

定位 id 属性与搜索值匹配的元素

name

定位 name 属性与搜索值匹配的元素

link text

定位link text可视文本与搜索值完全匹配的锚元素

partial link text

定位link text可视文本部分与搜索值部分匹配的锚点元素。如果匹配多个元素,则只选择第一个元素。

tag name

定位标签名称与搜索值匹配的元素

xpath

定位与 xpath 表达式匹配的元素

(1)class定位:

driver.find_element_by_id("soutu-btn")
driver.find_element(By.ID, "soutu-btn")  # 引入By模块

(2)、css定位

自行百度css选择器的语法,这里教一个简便的方法:Chrome浏览器调出元素检测,选择到元素后右键——>Copy——>Copy selector,然后把复制的内容粘贴到selenium元素定位方法中。

driver.find_element_by_css_selector("#kw")

(3)id定位:

driver.find_element_by_id("kw")
driver.find_element(By.ID, "kw")  # 引入By模块

(4)name属性定位

driver.find_element_by_name('wd')

(5)link_text和partial_link_text定位,匹配a标签下的文字

ink_text和partial_link_text是作用于链接a标签的,link_text用于全部匹配文本值,partial_link_text用于部分匹配文本值。

driver.find_element_by_link_text("地图")

(6)tag name定位

通过元素的标签名来定位元素,如:input标签、button标签

driver.find_element_by_tag_name("input")

(7)xpath定位

xpath基本定位语法:

 简单的使用如css定位那样,选择到元素后右键——>Copy——>Copy selector,然后把复制的内容粘贴到selenium元素定位方法中。

driver.find_element_by_xpath('//*[@id="kw"]')

综上为八大元素定位,比较常用的用红色标出:xpath定位、id定位、class定位、css定位

2、元素的基本操作

(1)、基本操作
        点击:                  element.click()
        输入内容:           element.send_keys("内容")
        清空内容:           element.clear()
        获取文本内容:    element.text
        获取属性值:        element.get_attribute("属性名称")
        获取元素的宽高: element.size,size和location一样都是实例属性,返回都是字典格式
        获取元素的坐标: element.location,元素坐标值是通过元素的最左上角相对浏览器内容区域的左上角来定位的

from time import sleep
from selenium import webdriver
from WebDriver import driver_dir

driver = webdriver.Chrome(driver_dir.chrome_driver_path)
driver.get("http://www.baidu.com")
input_ele = driver.find_element_by_id("kw") # 定位元素 
su_ele = driver.find_element_by_id("su") 
# 获取元素的文本内容
input_ele.text 
# 获取元素的某个属性 
input_ele.get_attribute("属性名称") 
# 输入内容 
input_ele.send_keys("selenium") 
# 点击操作 
su_ele.click() 
# 清空内容 
input_ele.clear() 
# 获取元素的宽高 
print("【百度一下】按钮的宽高:{}".format(su_ele.size)) 
# 获取元素的x、y坐标值 
print("【百度一下】按钮的坐标:{}".format(su_ele.location))

(2)、检查元素

        是否可见:     element.is_displayed(),返回True可见,反之不可见
        是否可点击: element.is_enabled(),返回True可点击,反之不可点击
        是否被选中: element.is_selected(),返回True被选中,反之未选中

from time import sleep
from selenium import webdriver
from WebDriver import driver_dir

# driver = webdriver.Chrome()
driver = webdriver.Chrome(executable_path=driver_dir.chrome_driver_path)
driver.maximize_window()
driver.get("https://www.baidu.com/")
sleep(1)
# id定位
ele = driver.find_element_by_id("kw")
print(ele.is_displayed()) 
print(ele.is_enabled()) 
print(ele.is_selected()) 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liang_cr

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值