selenium之元素常用方法

元素常用方法

元素定位

#获取单个元素, 如果这个查找器获取到多个元素,只取第一个
driver.find_element(By.NAME, "xxx")

#获取这个查找器,查询到的所有元素
driver.find_elements(By.NAME, "xxx")

#提供了8个查找器
By.ID  #通过id获取
By.NAME #通过属性名, name获取
By.CSS_SELECTOR #通过css选择器获取
By.CLASS_NAME #通过类名获取
By.TAG_NAME #通过标签名获取
By.XPATH #通过xpath选择器
By.LINK_TEXT #定位可见文本与搜索值匹配的锚元素
By.PARTIAL_LINK_TEXT #定位其可见文本包含搜索值的锚元素

推荐使用xpath selector插件进行获取,支持生成多种xpath语法的路径

元素操作

#点击,适用所有元素
driver.find_element(By.ID, "xxx").click()

#发送文本,适用于 text类型的表单的输入元素或具有content-editable属性的元素
driver.find_element(By.ID, "xxx").send_keys('text')
//清除
driver.find_element(By.ID, "xxx").clear()

# 操作下拉框
select_element = driver.find_element(By.ID, 'selectElementID')
select_object = Select(select_element)

# 通过下标选择
select_object.select_by_index(1)

#通过匹配value属性值选择
select_object.select_by_value('value1')

#通过匹配文本选择
select_object.select_by_visible_text('Bread')

# 查询所有被选择的el对象
all_selected_options = select_object.all_selected_options

#获取这个select下拉框中所有的option
all_available_options = select_object.options

# 通过下标取消选中select
select_object.deselect_by_index(1)

#匹配value取消选中
select_object.deselect_by_value('value1')

#匹配text取消选中
select_object.deselect_by_visible_text('Bread')

#取消所有选择
select_object.deselect_all()


# 判断select是否允许选择多项
does_this_allow_multiple_selections = select_object.is_multiple

元素信息

#此方法用于检查连接的元素是否正确 显示在网页上. 返回一个 Boolean 值, 如果连接的元素显示在当前的浏览器上下文中, 则为True 否则返回false.
is_button_visible = driver.find_element(By.CSS_SELECTOR, "[name='login']").is_displayed()

#元素是否被选定,返回Boolean值
value = driver.find_element(By.CSS_SELECTOR, "input[type='checkbox']:first-of-type").is_selected()

# 获取元素标签名
tag_name = driver.find_element(By.CSS_SELECTOR, "h1").tag_name

"""
获取元素矩形, 包含一下信息
元素左上角的X轴位置
元素左上角的y轴位置
元素的高度
元素宽度
"""
res = driver.find_element(By.CSS_SELECTOR, "h1").rect

# 获取元素文本
text = driver.find_element(By.CSS_SELECTOR, "h1").text
posted @ 2022-07-05 18:35  silence022  阅读(106)  评论(0)    收藏  举报