Selenium基础 — Selenium操作下拉菜单

页面中的<select></select>标签,就代表该元素是一个下拉菜单。

1、使用Selenium中的Select类来处理下拉菜单(推荐)

可以使用Select类中提供的方法来操作页面中的下拉菜单。

操作步骤

# 1.导入包Select类
from selenium.webdriver.support.select import Select

# 2.定位下拉菜单元素

# 3.把定位的下拉菜单元素存储到Select类中
select = Select(下拉菜单元素)

# 4.1 通过value属性来选择,option标签的一个属性值
select.select_by_value('属性值')

# 4.2 通过选项索引(index)值选择 索引从0开始
select_by_index(索引值)

# 4.3 通过选项名称选择
select_by_visible_text(选择名称)

示例:

页面代码片段

<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
</head>
<body>
<select name="selecta" id="selectA">
    <option value="bj">A北京</option>
    <option value="sh">A上海</option>
    <option value="gz">A广州</option>
    <option value="cq">A重庆</option>
</select>
</body>
</html>

脚本代码:

"""
1.学习目标:
    掌握selenium中Select类使用
2.语法(操作步骤)
    2.1导入Select类
    2.2 定位下拉框的select标签
    2.3 使用Select类提供的方法选择选项
        2.3.1 通过选项的value值选择
            select_by_value("value属性值")
        2.3.2 通过选项索引值选择 索引从0开始
            select_by_index(索引值)
        2.3.3 通过选项名称选择
            select_by_visible_text(选择名称)
3.需求
    在页面中,使用Select类操作下拉框
"""
# 1.导入selenium
from selenium import webdriver
from time import sleep
import os
from selenium.webdriver.support.select import Select

# 2.打开浏览器
driver = webdriver.Chrome()

# 3.打开页面
url = "file:///" + os.path.abspath("./3.html")
driver.get(url)
sleep(2)
# 4.使用Select类操作下拉框
# 4.1 定位下拉框标签
selectA = driver.find_element_by_id("selectA")

# 4.2 通过Select类选择选项
# 创建下拉框对象
# Select(定位下拉框的元素--select标签元素)
select = Select(selectA)

# 通过value值选择选项(选择上海)
select.select_by_value("sh")
sleep(2)

# 通过index值选择选项,索引从0开始(选择广州)
select.select_by_index(2)
sleep(2)

# 通过text值选择选项(选择北京)
select.select_by_visible_text("A北京")
sleep(2)

# 5.关闭浏览器
driver.quit()

2、下拉菜单对象的其他操作(了解)

调用方法选择下拉框中的选项

操作说明
all_selected_options查看所有已选
first_selected_option查看第一个已选
is_multiple查看是否是多选
options查看选项元素列表

取消选择:

操作说明
deselect_by_value()通过option标签的value属性来选择
deselect_by_index()通过选项索引(index)值选择 索引从0开始
deselect_by_visible_text()通过选项名称选择

示例:

同上边示例,具体看获得的select下拉菜单元素对象的操作。

# 1.导入selenium
from selenium import webdriver
from time import sleep
import os
from selenium.webdriver.support.select import Select

# 2.打开浏览器
driver = webdriver.Chrome()

# 3.打开页面
url = "file:///" + os.path.abspath("./3.html")
driver.get(url)
sleep(2)

# 4.使用Select类操作下拉框
# 4.1 定位下拉框标签
selectA = driver.find_element_by_id("selectA")

# 4.2 通过Select类选择选项
# 创建下拉框对象
# Select(定位下拉框的元素--select标签元素)
select = Select(selectA)

"""
我们就以first_selected_option举个例子,
其他的操作同理,自己尝试。
"""
# 5.下拉框元素对象的操作
# 下拉框对象直接调用操作
# 5.1 打印下拉框第一个已选选项
print("打印第一个已选选项", select.first_selected_option)

# 5.2 查看第一个已选选项对象的方法
print(dir(select.first_selected_option))

# 5.3 通过上一步,我们查看选项对象有一个text方法
# 是获取选项的名称
print(select.first_selected_option.text)  # A北京

# 6.关闭浏览器
driver.quit()

3、通过元素二次定位方式操作下拉菜单(重点)

了解元素二次定位

先定位下拉菜单,再定位菜单中的具体元素,对下拉菜单进行二次定位。

类似于XPathcss_selector层级定位。

在实际测试过程中,一个页面可能有多个属性基本相同的元素,如果要定位到其中的一个,这时候可以使用层级定位或者元素的二次定位。先定位到父元素,然后再通过父元素定位子孙元素。

示例:

页面代码片段

<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
</head>
<body>
<select name="selecta" id="selectA">
    <option value="bj">A北京</option>
    <option value="sh">A上海</option>
    <option value="gz">A广州</option>
    <option value="cq">A重庆</option>
</select>
</body>
</html>

脚本代码:

"""
1.学习目标:
    掌握二次定位的方法
2.语法(操作步骤)
    2.1 定位父标签
    2.2 通过父标签定位子标签
3.需求
    在页面中,使用二次定位方法,操作下拉菜单
4.总结
    二次定位:通过元素找另外元素。
    和xpath,css_selector层级定位类似。

    除了元素的基本操作外,元素也可以定位其他元素。
    元素.click()/clear()/send_keys()/find_element_xxx

    注意:二次定位不止使用在下拉菜单操作中。
"""
# 1.导入selenium
from selenium import webdriver
from time import sleep
import os

# 2.打开浏览器
driver = webdriver.Chrome()

# 3.打开页面
url = "file:///" + os.path.abspath("./3.html")
driver.get(url)
sleep(2)

# 4.二次定位操作下拉菜单
# 4.1 先定位父级元素--select标签元素
select = driver.find_element_by_name("selecta")

# 4.2 通过select标签元素定位option子标签
option = select.find_element_by_css_selector("option[value='gz']")

# 4.3 点击选择的选项
option.click()
sleep(2)

# 5.关闭浏览器
driver.quit()

 

最好我这里给你们分享一下我所积累和真理的文档和学习资料有需要是领取就可以了

1、学习思路和方法

这个大纲涵盖了目前市面上企业百分之99的技术,这个大纲很详细的写了你该学习什么内容,企业会用到什么内容。总共十个专题足够你学习

2、想学习却无从下手,该如何学习?

这里我准备了对应上面的每个知识点的学习资料、可以自学神器,已经项目练手。

3、软件测试/自动化测试【全家桶装】学习中的工具、安装包、插件....

4、有了安装包和学习资料,没有项目实战怎么办,我这里都已经准备好了往下看

最后送上一句话:
世界的模样取决于你凝视它的目光,自己的价值取决于你的追求和心态,一切美好的愿望,不在等待中拥有,而是在奋斗中争取。
如果我的博客对你有帮助、如果你喜欢我的文章内容,请 “点赞” “评论” “收藏” 一键三连哦

  • 3
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值